Разработчики часто сталкиваются с ситуацией, когда при попытке создать конфигурацию на основе Библиотеки стандартных подсистем (БСП) «с нуля» путем загрузки файла .cf, система выдает ошибку при первом запуске. Сообщение о том, что файл поставки не предназначен для создания информационных баз по шаблону, ставит в тупик многих специалистов. Давайте разберемся, как преодолеть этот барьер и правильно инициализировать БСП в вашей конфигурации.
Современные версии БСП спроектированы как сложная система зависимостей. При запуске пустой базы система ожидает увидеть корректно настроенные ОбщиеМодули и Подсистемы, которые сообщат платформе о версии библиотеки и порядке обновления информационной базы. Если эти метаданные не настроены, стандартные механизмы инициализации БСП блокируют запуск, защищая базу от некорректной работы.
Чтобы заставить БСП работать в вашей конфигурации, выполним следующие шаги:
МойКонфиг.ОбщийМодуль.ПодсистемыКонфигурацииПереопределяемый. В процедуре ПриДобавленииПодсистем добавьте вызов вашей подсистемы:
Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт
МодулиПодсистем.Добавить("МойКонфиг");
КонецПроцедуры
Для корректной регистрации вашей конфигурации необходимо создать ОбщийМодуль с именем, соответствующим вашей подсистеме. В нем мы реализуем процедуру ПриДобавленииПодсистемы. Важно понимать, что версия, указанная в этом модуле, должна строго соответствовать версии используемой вами БСП.
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "МойКонфиг";
Описание.Версия = "2.3.2.40"; // Укажите реальную версию БСП
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
КонецПроцедуры
Обратите внимание: мы явно добавляем зависимость от СтандартныеПодсистемы. Это критический момент, который указывает платформе, что ваша конфигурация должна вызывать обработчики обновления СтандартныхПодсистем перед запуском собственных алгоритмов.
При работе с БСП не пытайтесь упростить процесс за счет обращения к Метаданные.Имя или Метаданные.Версия внутри модуля инициализации. Это считается плохой практикой, так как при последующих обновлениях конфигурации система будет конфликтовать с данными поставщика. Лучше жестко прописать параметры в модуле, как показано в примере выше.
Также помните о следующих нюансах:
ОписаниеИзмененийСистемы до первого запуска конфигурации.ПриДобавленииОбработчиковОбновления или ПослеОбновленияИнформационнойБазы могут быть оставлены пустыми на этапе «быстрого старта», но сама процедура ПриДобавленииПодсистемы является обязательной для запуска.Хотя официальная документация на ИТС настаивает на использовании готовых шаблонов, метод ручной инициализации позволяет лучше понять структуру БСП. Однако, если вы строите промышленное решение, мы рекомендуем создавать базу по шаблону от разработчиков 1С и постепенно удалять лишние объекты, чтобы гарантированно сохранить все связи и права доступа, которые требуются для стабильной работы встроенных подсистем.
Если после выполнения всех действий остаются «зависшие» процессы в журнале регистрации, попробуйте запустить РегламентныеЗадания вручную или проверить наличие ошибок в процедурах ПередОбновлениемИнформационнойБазы. Чаще всего, правильная инициализация Описание.ТребуемыеПодсистемы решает 99% проблем при первом запуске.