Разработка и Конфигурация · 11 мин
Как добавить подсистему БСП в конфигурацию 1С
Как добавить подсистему БСП в конфигурацию 1С: подготовка, перенос объектов, настройка внедрения, типичные ошибки и проверка результата после обновления.
Библиотека стандартных подсистем (БСП) — это набор готовых механизмов от фирмы «1С»: управление пользователями, права доступа, версионирование объектов, работа с почтой, печать, обмен данными и десятки других функций. Добавление подсистемы БСП в конфигурацию позволяет не писать типовую функциональность с нуля, а внедрить проверенное решение. Однако просто скопировать объекты недостаточно — библиотека имеет внутренние зависимости, и пропуск обязательных модулей приводит к ошибкам при запуске.
Процедура внедрения зависит от того, что именно требуется: внедрить БСП в новую «пустую» конфигурацию, добавить отдельную подсистему в конфигурацию, уже содержащую БСП, или перенести функциональность в типовое решение. Во всех случаях основной инструмент — режим сравнения и объединения конфигураций в конфигураторе, а контрольный ориентир — официальная документация по внедрению, которая поставляется вместе с дистрибутивом БСП.
Ниже разобран полный цикл: подготовка копии, выбор объектов для переноса, обязательные действия после объединения, проверка работоспособности и типичные ошибки. Материал ориентирован на разработчиков и администраторов, работающих в конфигураторе 1С:Предприятие 8.3.
Что понадобится перед началом работы
Для внедрения потребуется дистрибутив БСП той версии, которая совместима с используемой платформой 1С:Предприятие. Дистрибутив включает файл конфигурации (.cf), демонстрационную базу и документацию по внедрению — именно в документации перечислены обязательные объекты для каждой подсистемы. Использовать версию БСП, рассчитанную на более старую платформу, рискованно: часть механизмов может не работать или потребовать ручной доработки.
Перед любыми действиями сделайте выгрузку информационной базы (dt) или хотя бы сохраните конфигурацию в файл. Объединение с БСП затрагивает сотни объектов, и откатить его штатными средствами невозможно — только восстановлением из копии. Если работа ведётся с типовой конфигурацией на поддержке, заранее оцените, как внедрение отразится на будущих обновлениях: пересечения объектов БСП и типового решения придётся сопоставлять вручную.
Также понадобятся полные права в базе и монопольный доступ на время обновления конфигурации базы данных. В клиент-серверном варианте убедитесь, что у вас есть возможность завершить сеансы пользователей и заблокировать регламентные задания.
Подготовка конфигурации и выбор способа внедрения
Существует два практических подхода. Первый — внедрение в новую конфигурацию «с нуля»: создаётся пустая конфигурация, и в неё загружаются объекты БСП. Второй — добавление подсистем в существующую конфигурацию через сравнение и объединение. Для новых разработок фирма «1С» рекомендует первый путь: конфигурация сразу строится на каркасе БСП, и все стандарты соблюдаются автоматически.
Перед объединением проверьте, нет ли в вашей конфигурации объектов, имена которых совпадают с объектами БСП, — например, общих модулей «ОбщегоНазначения» или «Пользователи». Совпадение имён при разном содержимом приведёт к затиранию вашего кода либо к конфликтам, которые придётся разрешать вручную. Такие объекты лучше заранее переименовать или подготовить план слияния.
Сравнение вариантов внедрения
Подходит при старте нового проекта. Все зависимости соблюдены изначально, но перенести уже написанную логику придётся вручную.
Подходит для доработки действующего решения. Требует тщательного контроля совпадающих имён и ручной донастройки после объединения.
Подходит, когда БСП уже частично внедрена и нужна дополнительная функциональность. Самый лёгкий сценарий, но зависимости всё равно проверяются.
Перенос объектов через сравнение и объединение
Основная операция выполняется в конфигураторе: меню «Конфигурация» → «Сравнить, объединить с конфигурацией из файла», где указывается файл конфигурации БСП. В открывшемся окне сравнения снимите общий флаг со всех объектов и отмечайте только то, что относится к внедряемой подсистеме и её зависимостям. Список обязательных объектов для каждой подсистемы приведён в документации по внедрению из комплекта БСП — опираться нужно именно на него, а не на интуицию.
Практически любая функциональная подсистема требует базовых: «Стандартные подсистемы» (ядро), «Пользователи», «Роли и права доступа» и ряд служебных объектов. Без них код внедряемой подсистемы не скомпилируется. Удобный приём — в демонстрационной базе БСП посмотреть состав командного интерфейса и через поиск ссылок на объекты подсистемы выявить связанные метаданные.
При объединении обратите внимание на режим: объекты, которых нет в вашей конфигурации, должны загружаться как новые, а совпадающие — объединяться с приоритетом, который вы выбираете осознанно. Для модулей с пересечениями конфигуратор предложит построчное сравнение; спешить здесь не стоит, ошибка в одном общем модуле может сломать всю конфигурацию.
- 1Сделайте выгрузку базы (dt) и сохраните текущую конфигурацию в файл
- 2Откройте конфигуратор в режиме монопольного доступа
- 3Выполните «Конфигурация → Сравнить, объединить с конфигурацией из файла» и укажите cf-файл БСП
- 4Отметьте базовые подсистемы (ядро, пользователи) и объекты целевой подсистемы по списку из документации
- 5Выполните объединение, затем обновите конфигурацию базы данных (F7)
- 6Запустите базу в режиме предприятия под полными правами и дождитесь отработки обработчиков обновления
Обязательные действия после объединения
Само по себе объединение метаданных не завершает внедрение. При первом запуске в режиме предприятия БСП выполняет обработчики обновления версии программы: заполняет служебные справочники, создаёт профили групп доступа, регистрирует поставляемые данные. Этот процесс может занять заметное время на больших базах, прерывать его нельзя — иначе служебные данные останутся в несогласованном состоянии.
Многие подсистемы требуют дополнительной настройки в коде. Например, при внедрении в новую конфигурацию нужно заполнить переопределяемые процедуры в общих модулях с постфиксом «Переопределяемый» — указать, какие справочники и документы участвуют в механизмах печати, версионирования, присоединённых файлов. Без этого подсистема формально присутствует, но к вашим объектам не подключена.
Также проверьте роли: новые роли БСП нужно включить в профили групп доступа или назначить пользователям. Если после запуска пользователи не видят новых разделов, чаще всего причина именно в ролях, а не в ошибке внедрения.
Проверка результата и контрольные точки
Минимальная проверка — успешный запуск конфигурации без сообщений об ошибках компиляции модулей. Далее откройте панель разделов: подсистемы БСП должны отображаться в командном интерфейсе. Зайдите в «Администрирование» и убедитесь, что доступны настройки внедрённой подсистемы, а в журнале регистрации нет массовых ошибок при обращении к новым объектам.
Для функциональной проверки выполните типовой сценарий подсистемы: если внедряли версионирование — измените объект и посмотрите историю версий; если печать — сформируйте печатную форму из документа; если обмен данными — создайте узел плана обмена. Ошибка на этом этапе обычно указывает на незаполненные переопределяемые процедуры или отсутствующие зависимые объекты.
Как проверить результат
База открывается, обработчики обновления завершены успешно
Ошибки компиляции модулей или зависание обновления
Разделы и команды БСП видны и открываются
Подсистемы есть в метаданных, но не отображаются у пользователей
Функция работает на ваших объектах (печать, версии, файлы)
Ошибки вида «метод не обнаружен» или пустые результаты
Типичные ошибки и ограничения
Самая частая ошибка — перенос только «видимой» части подсистемы без зависимостей. Симптом предсказуемый: при обновлении конфигурации базы данных возникают ошибки компиляции с перечнем отсутствующих объектов. Лечится повторным объединением с догрузкой недостающих метаданных, поэтому список из документации стоит выверять до начала переноса.
Вторая группа проблем — конфликты с существующим кодом: совпадающие имена общих модулей, подписок на события, определяемых типов. Подписки на события БСП могут начать срабатывать на ваши документы и вызывать ошибки, если типы источников заданы широко. Проверяйте состав типов-источников после объединения и сужайте их при необходимости.
Наконец, помните об ограничении: внедрённая БСП становится частью вашей конфигурации, и её обновление при выходе новых версий — отдельная задача, тоже решаемая через сравнение и объединение. Чем сильнее вы правите объекты БСП вручную, тем труднее будет каждое последующее обновление. Изменения лучше выносить в переопределяемые модули и расширения.
FAQ: частые вопросы о добавлении подсистем БСП
Можно ли добавить подсистему БСП в типовую конфигурацию, где БСП уже есть?
Да, это самый простой сценарий. Типовые конфигурации уже построены на БСП, поэтому базовые зависимости присутствуют. Останется перенести объекты нужной подсистемы и проверить, что версия БСП в дистрибутиве совпадает или совместима с версией, зашитой в типовое решение, иначе возможны конфликты общих модулей.
Обязательно ли внедрять подсистему «Пользователи» вместе с остальными?
Почти всегда да. Большинство подсистем БСП обращаются к механизмам авторизации, ролей и служебной информации о пользователях. Изолированно работают лишь немногие утилитарные модули. Точный перечень обязательных зависимостей указан в документации по внедрению конкретной подсистемы.
Что делать, если после объединения конфигурация не обновляется из-за ошибок компиляции?
Откройте список ошибок — в нём перечислены отсутствующие объекты. Выполните повторное сравнение и объединение с файлом БСП, догрузив недостающие метаданные, и повторяйте цикл, пока ошибки не исчезнут. Если ошибок слишком много, проще восстановиться из копии и повторить внедрение с полным списком зависимостей.
Можно ли внедрить БСП через расширение конфигурации, не меняя основную?
Полноценно — нет. БСП затрагивает сотни объектов, включая роли, подписки и определяемые типы, а расширения имеют ограничения на добавляемые объекты и не предназначены для такого объёма внедрения. Расширения разумно использовать для адаптации уже внедрённой библиотеки, а не для её первичного добавления.
Как потом обновлять внедрённую БСП до новой версии?
Тем же механизмом сравнения и объединения с cf-файлом новой версии БСП. Процедура пройдёт легче, если вы не правили типовые модули напрямую, а выносили изменения в переопределяемые процедуры. Перед обновлением изучите описание изменений в новой версии — там перечислены переименованные и удалённые объекты.
Сколько времени занимает внедрение одной подсистемы?
Зависит от подсистемы и состояния конфигурации. Перенос объектов и обновление базы — от получаса до нескольких часов на крупной базе, но основную часть занимает настройка переопределяемых процедур и тестирование сценариев на реальных данных. Закладывайте время на полный цикл проверки, а не только на техническое объединение.
Что важно запомнить
Подсистема БСП добавляется через сравнение и объединение с cf-файлом библиотеки, обязательно вместе с базовыми зависимостями. Перед началом — резервная копия, после объединения — запуск под полными правами для отработки обработчиков обновления, заполнение переопределяемых модулей и проверка типового сценария. Собственные доработки выносите в переопределяемые процедуры, чтобы не усложнять будущие обновления.