К статье
Практический материал

Разработка и Конфигурация · 11 мин

Библиотека в 1С: как пользоваться и подключать

Как пользоваться библиотеками в 1С: подключение БСП, работа с общими модулями, поиск функций, типовые ошибки и проверка результата. Практическая инструкция.

Термин «библиотека» в экосистеме 1С используется в нескольких смыслах, и от понимания различий зависит, как именно с ней работать. Чаще всего под библиотекой понимают БСП — Библиотеку стандартных подсистем, набор готовых модулей, ролей, подсистем и механизмов, которые фирма «1С» поставляет разработчикам для ускорения создания прикладных решений. Реже речь идёт о внешних библиотеках компоновки, подключаемых DLL или общих модулях, которые программист собирает внутри собственной конфигурации.

Практическая ценность библиотеки в том, что она избавляет от написания типового кода: работа с файлами, отправка печатных форм, управление пользователями, версионирование объектов, обмен данными — всё это уже реализовано и протестировано. Задача разработчика — правильно подключить нужные подсистемы и вызывать их программные интерфейсы, а не копировать код вручную.

Ошибки при работе с библиотеками обычно возникают на этапе внедрения: переносятся не все зависимые объекты, не назначаются роли, забываются обработчики обновления. Ниже разобраны основные сценарии: от выбора библиотеки и её внедрения до вызова функций из кода и проверки корректности работы.

Что такое библиотека в 1С и какие виды бывают

Прежде чем пользоваться библиотекой, нужно понять, с каким именно объектом вы имеете дело. В практике встречаются три основных вида. Первый — БСП (Библиотека стандартных подсистем): официальная разработка фирмы «1С», которая лежит в основе большинства типовых конфигураций и доступна для внедрения в собственные решения. Второй — отраслевые и прикладные библиотеки, например библиотека электронных документов или библиотека подключаемого оборудования, которые дополняют БСП. Третий — собственные библиотеки предприятия: наборы общих модулей, которые команда разработки выделяет для повторного использования в нескольких конфигурациях.

Отдельно стоит упомянуть внешние компоненты и DLL-библиотеки, подключаемые через механизм внешних компонентов. Это принципиально другой сценарий: такие библиотеки работают на уровне платформы, а не конфигурации, и требуют регистрации в операционной системе или помещения в макет конфигурации. Смешивать эти подходы не следует — у них разные правила подключения и обновления.

Как получить и подготовить библиотеку к внедрению

Дистрибутив БСП распространяется через официальные каналы фирмы «1С» — портал и диски ИТС для зарегистрированных пользователей. В комплект входят файлы поставки конфигурации, демонстрационная база и документация с описанием каждой подсистемы. Перед внедрением изучите раздел документации, посвящённый нужной подсистеме: там перечислены зависимости — другие подсистемы и объекты, без которых выбранная работать не будет.

Подготовка включает три обязательных действия. Во-первых, сделайте резервную копию рабочей базы — внедрение библиотеки меняет состав конфигурации, и откат без копии будет затруднён. Во-вторых, определите минимальный набор подсистем: внедрять всю библиотеку целиком в небольшую конфигурацию нерационально, это увеличит объём обновлений и время запуска. В-третьих, проверьте совместимость версий: библиотека рассчитана на определённую версию платформы, и несоответствие приведёт к ошибкам при обновлении конфигурации базы данных.

Как подключить библиотеку к конфигурации

Основной инструмент внедрения — механизм сравнения и объединения конфигураций в конфигураторе. Откройте свою конфигурацию, вызовите пункт меню «Конфигурация — Сравнить, объединить с конфигурацией из файла» и укажите файл поставки библиотеки. Платформа покажет дерево различий, где нужно отметить объекты, относящиеся к выбранным подсистемам: подсистемы, общие модули, роли, определяемые типы, подписки на события и связанные справочники или регистры.

Критически важно переносить объекты вместе с зависимостями. Если подсистема «Напоминания пользователя» использует подсистемы «Пользователи» и «Базовая функциональность», их тоже нужно включить в объединение. Пропуск зависимостей — самая частая причина того, что после внедрения конфигурация не компилируется или падает с ошибками при запуске. После объединения выполните обновление конфигурации базы данных и проверьте, что реструктуризация прошла без ошибок.

Порядок внедрения подсистемы БСП
  1. 1
    Сделайте резервную копию базы и выгрузку конфигурации в файл
  2. 2
    Изучите документацию подсистемы и выпишите её зависимости
  3. 3
    Запустите сравнение и объединение с файлом поставки библиотеки
  4. 4
    Отметьте нужные подсистемы вместе со всеми зависимыми объектами
  5. 5
    Выполните объединение и обновление конфигурации базы данных
  6. 6
    Запустите базу в режиме предприятия под полными правами — отработают обработчики первого запуска
  7. 7
    Проверьте появление новых команд и разделов в интерфейсе

Как пользоваться функциями библиотеки в коде

После внедрения функциональность библиотеки доступна через программные интерфейсы общих модулей. Соглашение БСП предполагает, что каждая подсистема предоставляет модули с постфиксами, определяющими контекст вызова: без постфикса — серверные процедуры, «ВызовСервера» — вызовы с клиента на сервер, «Клиент» — клиентские процедуры, «Переопределяемый» — модули, которые разработчик прикладного решения должен заполнить своим кодом.

Типовой вызов выглядит как обращение к экспортной процедуре общего модуля. Например, для получения представления пользователя или отправки уведомления используются соответствующие модули подсистем. Прежде чем писать собственную функцию, поищите готовую в модулях библиотеки: поиск по конфигурации (Ctrl+Shift+F) по ключевому слову часто показывает, что нужный метод уже существует и протестирован.

Модули с постфиксом «Переопределяемый» — это точки расширения. Библиотека вызывает их в определённые моменты, а вы размещаете там свой код: заполнение параметров, настройку состава объектов, обработчики событий. Не изменяйте непосредственно модули библиотеки без крайней необходимости — при следующем обновлении БСП ваши правки будут потеряны или вызовут конфликты при объединении.

Удобный приём — держать под рукой демонстрационную базу поставки библиотеки. В ней каждая подсистема показана в работе, а по коду демо-базы можно быстро понять, какие модули и процедуры вызываются для конкретного сценария, не читая всю документацию целиком.
ПЗ
Практическое замечание

Роли, права и настройка пользователей

Внедрение подсистем само по себе не даёт пользователям доступа к новым функциям. Каждая подсистема библиотеки поставляется с собственными ролями, которые нужно назначить пользователям или включить в профили групп доступа, если используется соответствующая подсистема. Типовая пара ролей обычно включает базовую роль для чтения и роль администрирования для настройки.

После первого запуска проверьте, что пользователи видят новые разделы и команды. Если раздел не отображается, причина почти всегда в отсутствии роли или в том, что командный интерфейс подсистемы не включён в состав рабочего стола. Настройка выполняется в панели разделов конфигурации или через функциональные опции, которыми библиотека управляет видимостью подсистем.

Контрольные точки

Как проверить результат внедрения

Обновление конфигурации базы данных
Норма

Завершилось без ошибок реструктуризации

Тревожный признак

Сообщения о невозможности изменить тип или удалить данные

Запуск в режиме предприятия
Норма

Отработали обработчики обновления, база открывается штатно

Тревожный признак

Ошибки «Метод объекта не обнаружен» или падение при старте

Видимость новых разделов у пользователя
Норма

Разделы и команды появились после назначения ролей

Тревожный признак

Разделов нет даже у администратора — не включены функциональные опции

Вызов программных интерфейсов из кода
Норма

Модули компилируются, функции возвращают ожидаемые значения

Тревожный признак

Ошибки компиляции — не перенесены зависимые модули

Обновление библиотеки и типовые ошибки

Библиотека развивается, и периодически её нужно обновлять до новых версий — ради исправлений и совместимости с платформой. Обновление выполняется тем же механизмом сравнения и объединения, но уже с новым файлом поставки. Перед объединением полезно включить режим показа только дважды изменённых объектов: это объекты, которые менялись и у вас, и в новой версии библиотеки, — именно они требуют ручного разрешения конфликтов.

Характерные ошибки при работе с библиотеками повторяются от проекта к проекту. Их знание экономит часы отладки.

Типичные ошибки
01
Перенос подсистемы без зависимостей — конфигурация не компилируется, вызовы функций падают с ошибками
02
Правка модулей библиотеки напрямую вместо переопределяемых модулей — изменения теряются при обновлении
03
Пропуск обработчиков первого запуска — подсистемы не заполнены начальными данными и работают некорректно
04
Внедрение всех подсистем сразу — избыточный объём, замедление запуска и усложнение обновлений
05
Игнорирование требований к версии платформы — ошибки при обновлении конфигурации базы данных

Когда библиотека не нужна: альтернативы

Не каждая задача требует внедрения подсистемы. Если нужна одна небольшая функция — например, преобразование даты в строку определённого формата, — рациональнее написать её в собственном общем модуле, чем тянуть в конфигурацию целую подсистему с зависимостями. Критерий простой: внедрение оправдано, когда библиотека закрывает задачу целиком (управление пользователями, обмен, печать), а не отдельный вызов.

Альтернативой полному внедрению служат расширения конфигурации: часть механизмов можно добавить расширением, не меняя основную конфигурацию, что упрощает последующие обновления. Также для интеграционных задач иногда достаточно внешних обработок, которые используют функции уже внедрённых подсистем, не требуя изменения конфигурации.

Маршрут решения

Как выбрать подход

Нужен целый блок функциональности (пользователи, обмен, печать)Внедряйте соответствующую подсистему библиотеки с зависимостями
Нужна одна-две функции без сложной логикиНапишите их в собственном общем модуле — внедрение избыточно
Изменения не должны затрагивать типовую конфигурацию на поддержкеИспользуйте расширение конфигурации вместо внедрения
Задача разовая, без изменения метаданныхДостаточно внешней обработки, вызывающей готовые модули
Итог

Что важно запомнить

Библиотека в 1С — это готовые подсистемы и модули, которые внедряются через сравнение и объединение конфигураций с обязательным учётом зависимостей. Работайте с библиотекой через программные интерфейсы и переопределяемые модули, не правьте её код напрямую, назначайте роли пользователям и всегда делайте резервную копию перед внедрением или обновлением.

Частые вопросы

Можно ли использовать БСП в конфигурации, написанной с нуля?

Да, библиотека изначально рассчитана на внедрение в собственные разработки. Минимально необходимая часть — подсистема базовой функциональности, остальные подключаются по мере необходимости вместе с их зависимостями.

Что делать, если после объединения конфигурация не запускается?

Читайте сообщения об ошибках при обновлении конфигурации базы данных: чаще всего не перенесены зависимые объекты или не выполнена реструктуризация. Если причина неясна, восстановите базу из резервной копии и повторите объединение, тщательнее отмечая зависимости.

Как понять, какие модули можно вызывать из своего кода?

Ориентируйтесь на экспортные процедуры и функции общих модулей подсистемы и на документацию к ней. Модули с постфиксом «Переопределяемый» предназначены для вашего кода, остальные — для вызова готовых механизмов.

Потеряются ли мои доработки при обновлении библиотеки?

Код, размещённый в переопределяемых модулях и собственных объектах, сохранится. Правки, внесённые напрямую в модули библиотеки, будут перезаписаны или вызовут конфликты при объединении — поэтому их следует избегать.

Обязательно ли внедрять всю библиотеку целиком?

Нет. Библиотека устроена модульно: каждая подсистема решает свою задачу, и внедрять нужно только те, что реально используются. Это сокращает время запуска, объём обновлений и количество потенциальных конфликтов.

Чем отличается библиотека от расширения конфигурации?

Библиотека — это исходный код подсистем, встраиваемый в саму конфигурацию через объединение. Расширение — отдельный механизм платформы, который добавляет объекты и обработчики поверх конфигурации без её изменения. Расширения проще обновлять, но их возможности по изменению структуры данных ограничены.