Расширение конфигурации — рекомендуемый способ дорабатывать 1С:Университет ПРОФ. Оно живёт отдельным файлом рядом с типовой, подключается через Конфигуратор и позволяет добавлять свои объекты, заимствовать типовые формы и модули, вешать обработчики событий и роли. Типовая при этом остаётся на поддержке 1С, а обновления встают штатно — без ручного слияния конфигураций.
Для вуза расширение обычно закрывает: дополнительные реквизиты в договорах и приказах, кастомные отчёты по успеваемости, свои роли и права, обмены с Moodle и ЭИОС, выгрузки в ФИС ФРДО. Если задача выходит за рамки расширения (тяжёлая аналитика, чат-боты, ИИ), её выносят во внешнюю систему и связывают с 1С по API.
Чем расширение отличается от правки типовой конфигурации
Исторически 1С:Университет дорабатывали двумя путями: правили типовую конфигурацию прямо в Конфигураторе или дописывали внешние отчёты и обработки. Первый путь снимал конфигурацию с поддержки поставщика: каждое обновление превращалось в трёхстороннее сравнение и слияние, которое приходилось делать вручную. Второй путь ограничивал возможности — внешние обработки не умеют менять формы типовой, добавлять реквизиты и роли.
Механизм расширений закрывает разрыв. Расширение — отдельный файл конфигурации, который платформа подключает поверх типовой на этапе запуска. Внутри расширения можно заимствовать типовые объекты, менять их формы и модули через обработчики, добавлять свои реквизиты, справочники, документы, регистры и роли. Типовая при этом не меняется физически: она остаётся на поддержке 1С и обновляется штатно.
| Аспект | Прямая правка типовой | Расширение конфигурации |
|---|---|---|
| Поддержка типовой | снимается или частично снимается | сохраняется |
| Обновления от 1С | ручное сравнение и слияние | штатная установка |
| Изоляция доработок | смешаны с типовым кодом | в отдельном файле |
| Откат доработок | трудоёмкий | отключением расширения |
| Перенос между базами | только вместе с типовой | одним файлом расширения |
На новых внедрениях 1С:Университет ПРОФ CDO Global по умолчанию работает через расширения. Если унаследована база с правками типовой, сначала проводим аудит и переносим правки в расширение, а типовую возвращаем к поставочному состоянию.
Что можно и что нельзя расширить
Механизм расширений покрывает большую часть прикладных задач вуза, но у него есть границы. Полезно разделять три группы объектов: заимствованные из типовой, добавленные в расширении и области кода, где расширение работает через обработчики.
Заимствованные объекты
- Формы. Можно добавлять реквизиты, команды, элементы, менять видимость и заголовки, вешать обработчики событий (при открытии, при записи, при изменении реквизита).
- Реквизиты. К типовым справочникам и документам добавляются собственные реквизиты — они хранятся в отдельных таблицах расширения.
- Модули. Можно перехватывать методы через директивы «Перед», «После», «Вместо» и добавлять собственную логику до/после/вместо оригинала.
- Роли. Заимствуются для контроля прав к типовым объектам с учётом добавленных реквизитов.
Добавленные объекты
- Собственные справочники, документы, регистры сведений и накопления, отчёты, обработки, планы обмена, HTTP-сервисы, общие модули, подписки на события.
- Собственные роли — для контроля прав на добавленные объекты.
- Собственные команды и подсистемы, чтобы аккуратно вписать доработку в интерфейс.
Области кода
- Обработчики событий. Основной инструмент: изменять поведение типовых объектов через «ПередЗаписью», «ПриЗаписи», «ПриОткрытии», «ОбработкаПроведения» и т.п.
- Перехват методов. Через «Вместо» с обязательным вызовом оригинала (ПродолжитьВызов), если поведение должно сохраняться.
- Собственные модули. Общие модули расширения, куда выносится бизнес-логика доработки.
Чего расширение делать не должно: подменять типовые структуры данных так, чтобы ломать миграции при обновлениях; хранить критичные данные только в реквизитах, добавленных к нестабильным типовым объектам; заменять типовые механизмы, которые фирма 1С в новом релизе может переписать.
Архитектура расширения 1С:Университет
Расширение под вуз удобно проектировать так, чтобы код и данные были сгруппированы по подсистемам: договоры и оплаты, приказы, учебный процесс, отчётность, обмены. Такой каркас упрощает регресс после обновлений типовой и передачу расширения между разработчиками.
Общие модули
Бизнес-логика расширения: расчёты, форматирование, работа с реквизитами, вспомогательные функции.
Обработки
Служебные операции: миграция данных в новые реквизиты, массовое обновление, разовые сценарии.
Регистры сведений
Собственные регистры для хранения истории, справочных данных и статусов обмена с внешними системами.
Формы
Заимствованные формы типовой с добавленными реквизитами и командами плюс собственные формы обработок и отчётов.
Отчёты
Отчёты на СКД по учебному процессу, договорам, задолженностям, успеваемости, кадровой отчётности.
Подписки и HTTP-сервисы
Подписки на события типовых объектов и HTTP-сервисы для обменов с Moodle, ЭИОС, платёжными шлюзами и ФИС ФРДО.
Разработку удобно вести в отдельной базе разработчика с копией продовых данных. Расширение хранится в Git — это даёт код-ревью, ветки, теги релизов и возможность откатиться на любую версию. Для 1С есть штатный формат выгрузки в файлы и подходящие инструменты вроде OneScript, EDT и стандартных подсистем.
Типовые доработки 1С:Университет для вуза
Ниже — блок задач, которые чаще всего закрываются расширением на проектах CDO Global. Все они реализуются без правки типовой.
Дополнительные поля в договорах и приказах
Юридические реквизиты, специальные условия оплаты, кастомные признаки для приёмной комиссии, ссылки на внешние документы. Добавляются как реквизиты расширения к типовым справочникам и документам, выводятся на заимствованные формы и включаются в печатные формы и отчёты.
Новые роли и права доступа
Собственные роли для учебных отделов, деканатов, приёмной комиссии, финансовой службы. Роль ограничивает права на добавленные реквизиты и объекты и корректно уживается с типовыми ролями 1С:Университет ПРОФ.
Кастомные отчёты по успеваемости
Отчёты на СКД по успеваемости, задолженностям, движению контингента, кадровой аналитике. Живут в расширении, тянут данные из типовых регистров и объектов и не мешают штатной отчётности 1С.
Интеграция с внешними системами
Обмены с ФИС ФРДО, платёжными шлюзами, ЭИОС и порталами вуза. Расширение хранит планы обмена, HTTP-сервисы и обработки выгрузки; на стороне внешней системы работает коннектор или плагин. Подробнее об обмене с ФИС ФРДО — в отдельном гайде ФИС ФРДО для ДПО.
Собственные обмены с Moodle
Двусторонний обмен по контингенту, учебным планам, ведомостям и оценкам. У CDO Global такая связка реализована в CDO.1С и в готовых продуктах CDO.ЭИОС и CDO.LMS. Логика на стороне 1С живёт в расширении, что даёт независимый цикл обновлений типовой и обмена.
Безопасная разработка расширений
Расширение — сильный инструмент, но им легко сломать себе будущее. Ниже — правила, которых CDO Global придерживается на проектах по 1С:Университет.
- Не захватывать объекты «в собственность». Захват означает, что объект типовой полностью перестаёт получать штатные изменения от поставщика. По умолчанию оставляем режим совместного использования, чтобы обновления типовой продолжали приходить.
- Работать с заимствованными формами через обработчики. Не менять типовой код формы, а добавлять свои элементы и вешать обработчики «При открытии», «При изменении», «Перед записью». Это переносит логику расширения в собственные модули и не ломает форму при её обновлении фирмой 1С.
- Обязательный вызов оригинала при «Вместо». Если метод перехватывается через «Вместо», в теле обычно вызывают ПродолжитьВызов, иначе типовая логика теряется, а обновления начинают ломать сценарии.
- Логика — в общих модулях расширения. Не размазывать бизнес-логику по формам и обработчикам: собственные общие модули проще тестировать, версионировать и переносить.
- Аккуратно с уникальностью имён. К именам собственных объектов и реквизитов удобно добавлять префикс расширения (например, cdo_) — это исключает пересечения с новыми объектами, которые фирма 1С может добавить в типовую.
- Хранить расширение в Git. Выгрузка в файлы и хранение в репозитории даёт код-ревью, ветки под задачи, теги релизов и историю изменений.
Тестирование расширений
Тестирование расширения строится по двум контурам: приёмочные сценарии на типовых процессах вуза и регресс после каждого обновления типовой или платформы.
- Приёмочные сценарии. Приёмная кампания, зачисление, приказы, договоры, оплаты, ведомости, обмены с Moodle и ФИС ФРДО. Для каждой доработки готовится короткий чек-лист «шаги — ожидаемый результат».
- Регресс после обновлений. Прогон тех же сценариев после обновления типовой 1С:Университет и платформы 1С:Предприятие. Регресс удобно вести на копии продовой базы, чтобы поймать пограничные случаи.
- Автотесты, где это оправдано. Модульные тесты общих модулей расширения через сценарное тестирование или xUnitFor1C — особенно для расчётов и обменов.
- Тестирование ролей. Заход под каждой типовой и добавленной ролью и проверка доступа к добавленным реквизитам и объектам.
- Проверка производительности. Если расширение вешает подписки на массовые события, замеряют время проведения и открытия форм на характерных объёмах.
Чек-листы удобно хранить в репозитории вместе с расширением — тогда история тестов растёт вместе с историей кода, и после обновлений типовой сразу понятно, что нужно перепроверить.
Публикация и обновление расширения
Расширение подключается к базе в режиме Конфигуратора (пункт «Расширения конфигурации») или из «Предприятия» через штатную обработку. При установке платформа проверяет совместимость с текущей типовой и выводит список замечаний, если что-то заимствовано некорректно.
- Установка. Загрузка файла расширения в раздел «Расширения конфигурации», проверка совместимости, обновление конфигурации базы данных.
- Отключение. Расширение можно временно отключить одним флажком — типовая продолжит работать без доработок. Это удобно для локализации проблемы во время инцидента.
- Откат. Полный откат — выгрузка предыдущей версии из Git, повторная загрузка в базу, обновление конфигурации. Именно поэтому важно тегировать релизы расширения.
- Обновление типовой. После установки нового релиза типовой прогоняется регресс. Если фирма 1С поменяла заимствованные формы или методы, расширение пересохраняется на новой версии типовой.
- Обновление платформы. После обновления 1С:Предприятие расширение перепроверяется на совместимость — особенно в части клиент-серверных вызовов и работы форм.
Типовые ошибки при разработке под 1С:Университет
По аудитам чужих внедрений CDO Global регулярно видит один и тот же набор проблем. Ниже — что чаще всего мешает вузу спокойно обновлять 1С:Университет.
- Правка типовой конфигурации без расширения. Классический сценарий: несколько лет накопленных изменений в типовой, конфигурация снята с поддержки, каждое обновление — многодневное слияние. Решение — перенести всё в расширение и вернуть типовую к поставочному состоянию.
- Перехват методов через «Вместо» без вызова оригинала. Убивает штатную логику типовой, а после обновления ломает сценарии. Правило: если перехватили — вызывайте ПродолжитьВызов, если это не сознательное замещение.
- Бизнес-логика в общих модулях типовой. Часть команд по привычке дописывает логику расширения прямо в типовые модули. Это тоже правка типовой, только замаскированная. Логику нужно выносить в собственные общие модули расширения.
- Захват объектов «в собственность» без необходимости. Захваченный объект перестаёт получать обновления от поставщика. Использовать только там, где иначе действительно никак.
- Отсутствие тестов после обновления платформы. Расширение работало вчера — значит, работает и сегодня. Так бывает не всегда: платформа меняет поведение форм, вызовы модулей, работу транзакций. Регресс после обновления платформы обязателен.
- Тяжёлая аналитика внутри 1С. Дашборды, сложные ИИ-сценарии, чат-боты — плохо ложатся в расширение и грузят продовую базу. Их выносят во внешнюю систему.
Когда лучше делать не расширение, а внешнюю систему
Расширение — не универсальный инструмент. Есть класс задач, которые правильнее вынести во внешний контур и связать с 1С по API. Это разгружает продовую базу, снимает риски совместимости с обновлениями типовой и позволяет использовать современный стек для того, для чего 1С не заточена.
- Тяжёлая аналитика и BI. Дашборды для ректората, регулярные срезы по десяткам показателей — в BI-систему (например, Yandex DataLens, Power BI, 1С:Аналитика), а не в отчёты внутри 1С.
- Академический ИИ. Конструкторы РПД и ФОС, ИИ-тьюторы, диалоговые тренажёры — во внешнем сервисе; в CDO Global это линейка DeepTalk.
- ЭИОС и LMS. Личные кабинеты студента и преподавателя, курсы, ведомости, вебинары — в Moodle или в готовом решении CDO.ЭИОС. 1С через расширение отдаёт контингент, планы, оценки.
- Порталы и сайты. Публичные страницы, приёмная кампания на сайте, чат-боты, интеграции с CRM — в отдельных сервисах.
Хорошее правило: если функция нужна только сотрудникам учебной части и работает с типовыми объектами 1С — это расширение. Если функция должна быть доступна студентам, преподавателям, ректорату или наружу — это внешняя система, которая обменивается с 1С по API. Такое разделение контуров сокращает риски и упрощает поддержку.