Процесс голосования
- Секретарь совета заводит голосование, набирает состав заседания и рассылает членам совета письма со ссылкой на бюллетень.
- Участник открывает ссылку, вводит личный код и голосует «за» или «против» — учётная запись на сайте ему не нужна.
- Секретарь видит ход голосования в реальном времени: карточка обновляется сама, без перезагрузки страницы.
- Когда голосование завершено, модуль считает исход по порогу в две трети голосов «за» и отдаёт протокол заседания в DOCX или PDF.
Советы, люди, справочники
- Роль и электронная почта человека в конкретном совете переопределяются поверх его карточки: один и тот же человек может быть председателем в одном совете и членом в другом.
- Справочники специальностей и учёных степеней, карточка совета с шифром и приказом.
- Состав совета проверяется при сохранении: ровно один председатель и ровно один учёный секретарь
- Три состояния: черновик, идёт, завершено. Пока голосование в черновике, состав можно править.
- Состав заседания — снимок на момент создания: последующая правка карточки человека не меняет уже проведённое голосование.
- Роли в заседании назначаются заново под конкретную защиту - научный руководитель соискателя не председательствует. Модуль проверяет, что в заседании есть председательствующий, заместитель председателя, учёный секретарь и члены совета, и подсказывает, кого назначить, если кого-то не хватает.
- Тайное и поимённое голосование. В тайном поимённые ответы не покидают базу: наружу уходит только счёт «за» и «против». В поимённом карточка показывает, кто как проголосовал.
- Исход считает сервер: решение принято при двух третях голосов «за» и более.
- Вход по личному коду участника, без регистрации и аккаунта на сайте. Код проверяется на каждом запросе.
- Ссылку на бюллетень можно скопировать.
- Ответы участников хранятся в базе в зашифрованном виде.
- Бланк протокола — ваш собственный DOCX-файл, загружается в настройках модуля. Вёрстки бланка внутри модуля нет: колонтитулы, поля страницы, гербы и подписи остаются ровно такими, как в вашем шаблоне.
- Подстановка по плейсхолдерам вида `{{ИМЯ}}`: шифр совета, название учреждения, дата заседания, ФИО соискателя, учёная степень, приказ совета, число членов совета и число проголосовавших, голоса «за» и «против», должности и инициалы председателя и учёного секретаря. Список плейсхолдеров с примерами показан прямо на странице настроек.
- ФИО и учёные степени склоняются по падежам автоматически - «Иванову Ивану Ивановичу», «кандидата технических наук».
- PDF - тот же самый документ, конвертированный через LibreOffice, поэтому PDF и DOCX не могут разойтись. LibreOffice необязателен: если его нет на сервере, выгрузка в DOCX работает как обычно, кнопки PDF просто не будет.
Свой логотип и цветовая схема (три готовых схемы плюс покомпонентное переопределение цветов) — интерфейс приводится к фирменному стилю вуза.
Требования модуля
Обязательные (без них установка не пройдёт)
- PHP 8.4 или выше.
- Bitrix, модуль «Главный модуль» (main) 26.0.0 или выше.
- Расширения PHP: dom, gd, json, mbstring, openssl, xml, zip.
- MySQL 8
- LibreOffice (soffice, пакет libreoffice-writer) - только для выгрузки протокола в PDF. Нет его - кнопки «Протокол в PDF» просто не появится, DOCX работает всегда. Путь задаётся в настройках модуля.

