1с бсп что это

Обновлено: 05.07.2024

1С:Предприятие 8

Стандартная библиотека
Библиотека стандартных подсистем, редакция 3.0

Версия 3.0.3

Версия 3.0.3 является развитием редакции инструментария «1С:Библиотека стандартных подсистем», который предназначен для разработки конфигураций на платформе «1С:Предприятие» версии 8.3.12 и выше. При этом свойство конфигурации «Режим совместимости» должно быть установлено в «Не использовать» при разработке на версии 8.3.12 или в «Версия 8.3.12» при разработке на более старших версиях.

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

Администрирование пользователей и прав доступа;

Средства администрирования и обслуживания (установка обновлений, резервное копирование, дополнительные отчеты и обработки, оценка производительности и др.);

Сервисные подсистемы (история изменений объектов, заметки и напоминания, печать, полнотекстовый поиск, присоединенные файлы, электронная подпись и др.);

Технологические механизмы и программные интерфейсы (процедуры и функции общего назначения, обновление версии ИБ, работа в модели сервиса и др.);

Нормативно-справочная информация и классификаторы (адресный классификатор, банки, валюты и др.);

Прикладные подсистемы и рабочие места пользователей (анкетирование, бизнес-процессы и задачи, взаимодействия, варианты отчетов и др.).

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

Порядок перехода с предыдущей версии

Весь исходный код библиотеки распространяется по лицензии Attribution 4.0 International (CC BY 4.0) . Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode. Эта лицензия позволяет вам использовать, распространять, перерабатывать, исправлять и развивать библиотеку в любых, в том числе, в коммерческих целях, при обязательном условии указания авторства библиотеки в вашем программном продукте. См. также: Ответы на типовые вопросы по лицензированию "1С:Предприятия 8".

Для обновления версий БСП в прикладных решениях рекомендуется использовать специализированные инструменты, входящие в дистрибутив библиотеки:

ExtFiles\ПервоеВнедрениеБСП.epf – внешняя обработка для упрощения процесса первого внедрения библиотеки в прикладную конфигурацию. Позволяет выбрать подсистемы для внедрения с учетом их зависимостей друг от друга и сохранить настройки для сравнения-объединения с помощью конфигуратора. Также с ее помощью можно выполнить удаление избыточных фрагментов кода подсистем, которые не используются в конфигурации.

ExtFiles\Инструменты разработчика\ПереходНаВерсию<номер версии>.epf – внешние обработки по автоматизации ряда массовых операций при переводе конфигурации с ранних версий библиотеки, которые указаны в разделе Переход с предыдущих версий файла UpdateSSL.htm . Предусмотрены обработки для перехода на версии 3.0.1 и 3.0.3. Обработки запускаются в информационной базе после обновления метаданных библиотеки в прикладной конфигурации. При работе с хранилищем конфигурации обработку рекомендуется запускать на копии информационной базы и затем загружать обратно измененные метаданные конфигурации с помощью сравнения-объединения.

ExtFiles\ПроверкаВнедренияБСП.erf – внешний отчет, предназначенный для запуска в информационной базе после внедрения или обновления метаданных библиотеки в прикладной конфигурации. Выявляет распространенные проблемы внедрения библиотеки в конфигурации, в частности, проверяет корректность заполнения состава определяемых типов, наличие необходимых вставок кода в модулях.

ExtFiles\ОбновлениеНаИсправительнуюВерсиюБСП.epf – внешняя обработка для обновления конфигурации на новые исправительные релизы библиотеки. Она позволяет существенно сэкономить время при регулярных (например, еженедельных) обновлениях. Исправительные релизы библиотеки отличаются только четвертой цифрой в полном номере версии, например: 2.4.1. 1 , 2.4.1. 2 , 2.4.1. 10 и т.п. Ее необходимо запускать в информационной базе с конфигурацией, содержащей предыдущий релиз библиотеки. Нажать на кнопку Обновить на исправительную версию , указав файл 1Cv8.cf новой версии библиотеки из комплекта поставки. При этом выполняется автоматическое сравнение/объединение с новой конфигурацией библиотеки согласно настройкам, которые соответствуют документации: будут перенесены все поставляемые объекты библиотеки, а переопределяемые при внедрении – объединены с приоритетом конфигурации поставщика (например, определяемые типы) или пропущены (как например, переопределяемые модули). После сравнения/объединения конфигурация базы данных не будет обновлена автоматически, что позволяет выполнить сравнение с конфигурацией базы данных и внести правки в измененные объекты: переопределяемые модули, различные локальные исправления и доработки. После обновления необходимо дополнительно выполнить инструкции из раздела Переход с тестовых версий или Переход с предыдущих версий документа UpdateSSL.htm , если они указаны. Кроме того, в качестве альтернативного варианта, по кнопке Сформировать файл настроек предусмотрена возможность сформировать настройки, которые затем можно загрузить в конфигураторе для ручного сравнения-объединения. Однако при обновлении на новые функциональные релизы (изменение третьей цифры) расстановку флажков в окне сравнения-объединения необходимо выполнять, как и ранее, в конфигураторе, следуя инструкциям в главе 2 документации.

Документация

См. также на портале

Перед началом установки конфигурации ознакомьтесь с важной информацией в файле Readme.txt

Полный дистрибутив конфигурации

Все данные для установки находятся на диске в каталоге \1Cits\EXE\SSL\3.0.3.121\ ( просмотреть каталог )

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

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

Запустим БСП (у нас редакция 2.3, версия 2.3.3.63), перейдем в раздел «Инструменты разработчика» U94; «Первое внедрение БСП»:



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

После выбора всех параметров система проверит, все ли было корректно выбрано и предложит разные варианты отслеживания ошибок (Таблица внедрения подсистем или Отчет по внедрению БСП).

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

Далее рассмотрим на примере, когда с БСП в «1С:Бухгалтерия предприятия» (БП) нужно перенести некую подсистему.

У нас есть две конфигурации: первая (основная) - со всеми подсистемами БСП, вторая (файла) - БП.

Далее порядок действий следующий:

1. Включить возможность редактирования основной конфигурации.

2. Вызвать меню Конфигурация - Сравнить, объединить с конфигурацией из файла.

3. Выбрать файл с расширением cf конфигурации БП.

4. На предложение постановки на поддержку ответить Да.

5. Далее в окне сравнения - снять все флажки (снять флажок с корневого элемента).

6. Выполнить Действия - Отметить по подсистемам.

7. Отметить подсистемы, которые отсутствуют в нашей основной конфигурации – взять из файла, но подсистемы, которых нет в конфигурации из файла, нужно оставить в основной конфигурации (по умолчания так и будет), далее нажать Установить.

8. Отметить к объединению свойства корневого элемента: Основные роли, Модуль управляемого приложения, Модуль сеанса, Модуль внешнего соединения, Модуль обычного приложения, Режим использования модальности, Режим использования синхронных вызовов расширений платформы и внешних компонент, Режим совместимости интерфейса, Режим совместимости. Нажать Выполнить.

9. В окне Настройка правил поддержки - Ок.

10. Обновить конфигурацию базы данных (F7).

11. Далее, скорее всего, появится следующая ошибка:


«… (объект входит в состав одноименного общего реквизита)» или «… : Использование определяемых типов в режиме совместимости Х.Х.Х. (к примеру, автор) и ниже недопустимо» ; «ОбщаяКартинка: Имя не уникально!»

12. Для объекта, который входит в состав одноименного общего реквизита – снять с поддержки, удалить объект и ссылки на него. Выполнить поиск ссылок на удаляемые объекты – удалить ссылки.

13. Поменяйте режим совместимости выше Х.Х.Х.

14. Обновить конфигурацию базы данных (F7). Далее, если возвращаетесь на пункт 11, выполнить пункти 12 и 13, потом 14.

В принципе это и все – «автоматическая» часть работы закончена. Начинается самый «интересный» этап работ: если Вы уже подумали, что конфигурация «взлетела», то, скорее всего, Вы сильно ошибаетесь.

Для начала проверяйте общие модули, включены ли подсистемы в командный интерфейс и прочее моменты. Когда все «как бы готово», приступайте к отладке.

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

И так выполняете отладку до тех пор, пока не убедитесь в отсутствии ошибок.

Для чего создавалась БСП

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

Использование единых модулей позволило достичь большей стандартизации прикладных решений, а это в свою очередь позволило уменьшить время на их изучение (и программистами, и администраторами, и конечными пользователями).

Как распространяется БСП

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

В состав поставки БСП входит демо-база с примером внедрения. Данная демо-база доступна для ознакомления на сайте 1С. Как можно получить к ней доступ можно почитать в статье Удаленный доступ к демо-конфигурациям 1С.

Состав БСП

БСП состоит из множества подсистем, которые делятся на:

На текущий момент (июль 2017 года) доступна БСП версии 2.4.2, которая поддерживает следующий функционал:

Подробнее конкретные подсистемы будут описываться в отдельных статьях.

Внедрение БСП

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

  • Базовая функциональность;
  • Обновление версии ИБ;
  • Пользователи.

Общая схема внедрения состоит из следующих этапов:

  1. Перенос необходимых объектов метаданных в целевую конфигурацию;
  2. Настройка перенесенных объектов;
  3. Использование объектов БСП при разработке нового функционала.

Для помощи во внедрении БСП в состав библиотеки входит обработка ПервоеВнедрениеБСП.epf . Она располагается в каталоге шаблона конфигурации. В обработке есть краткое описание всех подсистем и определены взаимозависимости подсистем друг от друга.

Для проверки корректности внедрения БСП в каталоге шаблона конфигурации располагается отчет ПроверкаВнедренияБСП.erf.

Как узнать версию БСП прикладного решения

Есть несколько способов узнать какая версия БСП используется в конкретном прикладном решении:

Остались вопросы?
Спросите в комментариях к статье.

Всем привет! Данный материал посвящен дальнейшему описанию возможностей типовой поставляемой конфигурации для разработчиков "Библиотека стандартных подсистем" (БСП). В настоящей статье, я опишу часть "основ" библиотеки - базовый функционал общего назначения, который уже можно использовать (т.е мы ничего не придумываем сами, используем готовые решения и экономим собственное и чужое время) в любых конфигурациях, основанных на БСП.

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

В качестве платформы я использую 1С:Предприятие 8.3.17.1549 (64 бит) и последнюю конфигурацию Розница 2.3.5.32. В указанную конфигурацию встроена БСП 3.1.2.457 версии (отмечу, что не самая последняя, на момент написания статьи - последняя 3.1.3).

Итак, давайте перейдем к описанию:

Полезные функции и процедуры общего модуля БСП

Работа с данными в базе

Функция 1.1

ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт

Данная серверная функция позволяет получить выбранные реквизиты (Знач Реквизиты) по ссылке - Ссылка. Пример применения данной функции вот такой:

Очень удобно, когда ты можешь получить сразу необходимую структуру по любой ссылке в допустимой степени без использования запросов и дополнительного кода.

Функция 1.2

ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь) Экспорт

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

Для "базовых вещей" данные функции очень даже применимы. В БСП есть рекомендация использовать именно эти функции, а не обращаться к реквизитам через точку.

Функция 1.3

ПроверитьПроведенностьДокументов(Знач Документы) Экспорт

Данная функция возвращает массив непроведенных документов. Если документы проведены - массив пустой. Пример использования:

Одна из удобных базовых функций для работы, на мой взгляд. В данном примере мне будет возвращен массив с 2 элементами, т.к. 2 документа из 3-х у меня не проведены.

Функция 1.4

ПровестиДокументы(Документы) Экспорт

Еще одна интересная функция, которая проводит документы, а так же возвращает массив документов с описанием ошибок, если не удалость провести:

Здесь, функция вернула мне массив такого содержания, где видно какой документ не удалось провести и почему:


Рис.1. Элементы массива содержат структуры с описанием ошибки и ссылки.

Функция 1.5

ЕстьСсылкиНаОбъект(Знач СсылкаИлиМассивСсылок, Знач ИскатьСредиСлужебныхОбъектов = Ложь) Экспорт

Данная функция осуществляет простую проверку - есть ли ссылки на объект или нет. Возвращает "истину" или "ложь".

Функция 1.6

МестаИспользования(Знач НаборСсылок, Знач АдресРезультата = "") Экспорт

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

Например, документ "Отчет о розничных продажах" имеет ссылку в документе "Выемка денежных средств из кассы ККМ", что показывает нам результат этот функции:


Рис.2. Строка таблицы значений с результатом использования Ссылки. Ссылка - Данные

Работа с окружением базы

Функция 2.1

ОписанияПодсистем() Экспорт

Данная функция возвращает массив структур, содержащий информацию о системах и стандартных библиотеках, включенных в конфигурацию (то же самое, что содержимое файла Версии библиотек.txt при поставки конфигурации. Например:


Рис.3. В конфигурацию включена подсистема маркировки 10.1.18.

Функция 2.2

ОбщиеПараметрыБазовойФункциональности() Экспорт

Данная функция возвращает структуру с настройками базовой функциональности конфигурации. Интересным содержанием структуры является такие как МинимальнаяВерсияПлатформы и РекомендуемыйОбъемОперативнойПамяти.

Обращение к функции вот так:

Функция 2.3

ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт

Определяем является ли информационная база файловой (Истина) или серверной (Ложь).

Функция 2.4

ОперативнаяПамятьДоступнаяКлиентскомуПриложению() Экспорт

Данная функция возвращает объем оперативной памяти, которая доступна приложению (в гигабайтах). Вот у меня в системе доступно 3.9 гб:

Функция 2.5

РедакцияКонфигурации() Экспорт

Данная функция возвращает номер (строка) редакции конфигурации:

Функция 2.6

ЭтоWindowsКлиент() Экспорт

Данная функция возвращает Истина, если пользователь работает по windows на клиенте. Так же есть группа подобных функций, позволяющих определять где работает пользователь: ЭтоWindowsСервер(), ЭтоLinuxКлиент(), ЭтоLinuxСервер(), ЭтоMacOSКлиент(), ЭтоВебКлиент(), ЭтоМобильныйКлиент(), КлиентПодключенЧерезВебСервер(). Все функции работают через привилегированный режим.

Работа с датами

Функция 3.1

ПредставлениеЛокальнойДатыСоСмещением(ЛокальнаяДата) Экспорт

Данная функция возвращает дату со смещением по часовому поясу, в описании по формату "YYYY-MM-DDThh:mm:ssTZD" :

Функция 3.2

ИнтервалВремениСтрокой(ВремяНачала, ВремяОкончания = Неопределено) Экспорт

Полезная функция, возвращающая интервал времени строкой, в пример - вернет "1 день":

Функция 3.3

ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт

Данная функция вернет текущую дату пользователя по его имени:

Заключение

Спасибо за прочтенный материал. Знаю, что в той или иной степени, на ресурсе уже были подобные статьи с описанием подобного функционала. Со своей стороны хочу отметить, что данная статья - это своего рода "моя индивидуальная выжимка собственного опыта", накопленного при работе с типовыми конфигурациями на основе БСП. Предполагаю, что данная статья-шпаргалка будет полезна как и мне (чтобы не забыть возможности), так и вам - "если что-то не знали" - пожалуйста, тут есть что узнать и запомнить.

Предыдущие материалы

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

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

ПроверитьПроведенностьДокументов() -возвращает массив непроведенных документов из списка переданных ссылок на документы. Интересно, сколько лет нужно этим кхм. людям чтобы научиться именовать методы и объекты. firma_unix; dabu-dabu; Jestery; ivanov660; CyberCerber; brr; zqzq; morin; UniversaLL; davdykin; rpgshnik; + 11 – Ответить (1)Я думаю переименований 5-10.. и еще штук 5 перенос из одного модуля в другой.

По собственному применению БСП, могу сказать что методы в ней последнее время очень быстро устаревают - такая тенденция.
В частности касается работы "длительных операций".

Напишу статью в дальнейшем по применению длительных операций.

После того как "ПолучитьНомерНаПечать" уехал в "НомерНаПечать" стараюсь не использовать как БСП, так и вообще разные типовые процедуры и функции конфигураций, становится себе дороже. user717534; user1346935; slicem; oninfostart; modestry; ybatiaev; AlkB; Yashazz; Serega-artem; Azamatex; surikateg; morin; zqzq; garik79; + 14 – Ответить (4) Тут как раз рецепт простой. Любой вызов типового модуля или объекта, нужно оборачивать в свой метод, и если функциональность переедет, то проблем не будет особых

(4)Может выпустить надстройку над БСП (и другими типовыми библиотеками) - где разместить функциональность в небольшом количестве ) модулей (не 1С Совместимых, зато лаконичных) - так, чтобы минимизировать последующие переносы/удаления функций - а если таковые и будут - то делать обратную совместимость (с указанием obsolete и выводом таких вызовов в ж/р (для последующего выявления и исправления в коде), можно и спец инструмент добавить - анализирующий код на предмет вызовов таких obsolete (устаревших) функций).

Именовать модули можно достаточно лаконично и обобщённо. Я бы выделил несколько общих "классов" - и сосредоточил в них функциональность - как-будто это действительно классы-расширения (хелперы - как их ещё называют в других языках). В принципе - подключив расширения IDE и препроцессор можно было бы даже реализовать авто-привязку этих функций прям к исходным обеъктам (например к документу объекту/ссылке или к печатной форме: расширение IDE бы позволяло бы видеть эти функции именно в контексте объектов которым они привязаны (через точку_, ну а далее либо делать сразу подстановку нужного вызова из общего модуля, либо оставлять так как есть - а замену уже будет делать препроцессор - например при передаче из IDE в ИБ через агента-конфигуратора - как это делает EDT, просто тут возникает доп звено трансляции).

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

Отдельно нужен будет модуль для универсального вызова сервера (с общей функцией универсального вызова (с преобразованием типов при необходимости), в т.ч для удобного вызова на сервере функциональности из обработок).
Отдельно нужен будет модуль для универсального фонового вызова функции (с общей функцией универсального вызова (с преобразованием типов при необходимости), несмотря на то, что есть модуль "ФоновоеЗаданиеМенеджер", в т.ч для удобного вызова в фоне функциональности из обработок).
Отдельно нужен будет модуль для универсального внешнего вызова функции (с общей функцией универсального вызова как COM таки WS соединений, с кешированием соединений, с преобразованием типов при необходимости, несмотря на то, что есть модуль "ВнешниеСоединениеМенеджер").
Отдельно можно сделать модуль для универсального вызова функции внешней компоненты (с общей функцией универсального вызова, с кешированием внешних компонент, с преобразованием типов при необходимости, несмотря на то, что есть модуль "ВнешнияКомпонентаМенеджер", в т.ч для удобного вызова во внешнем контексте функциональности из обработок).
Отдельно нужен будет модуль для универсального кешированного вызова (с общей функцией универсального вызова, с преобразованием типов при необходимости, несмотря на то, что есть модуль "КешированиеМенеджер").
Это всё-чтобы не плодить кучу лишних модулей и сделать работу с данной функциональностью наиболее удобной!

А вот для привилегированных вызовов такой модуль делать не стоит - ибо это уже вопросы безопасности.

Можно всё это разбить даже на несколько отдельных частей - базовые и расширенные (устанавливаемые путём объединения конфигураций)

Внутри можно либо делать поддержку всех БСП (начиная с какой-то опр редакции - просто проверяя текущую редакцию и перенапрравляя вызов в нужный модуль стандартной библиотеки), либо делать скользящую поддержку (то есть для каждой версии БСП отдельно, но скорее тут тоже гибридно выйдет - например выпускать отельные библиотеки для подредакций БСП (3.0, 3.1, 3.2. ), а для релизов - осуществлять уже общую поддержку внутри всех вариантов).

Ну, как написал, это может быть единая библиотека (набор библиотек) не только для БСП но и для других стандартных библиотек. кстати, не обязательно, даже типовых - просто выпускать доп расширения (ставящиеся объединение конфигураций), которые будут соблюдать общий принцип именования пространства имён.

Так же можно делать модули с улучшенным функционалом - если сообщество напишет лучшие алгоритмы, чем будут в стандартных библиотеках - именовать переадресацию на их реализацию можно в таких общих модулях (устанавливаемых отдельно):
СтрокаМенеджерРасширение
СтрукутраМенеджерРасширение

Но это только для пересекающегося функционала.

И ещё - если в процессе эволюции БСП у функции меняется состав аргуменнтов
- то если в сторону расшироения - проблем нет - в переадресации дописываются новые необязательные аргументы
- если в сторону сокращения и/или изменения порядка - нужно стараться сохранить поддержку старого порядка - т.е. нужно будет проверять типы аргументов и перетасовывать их
- А вот если типы будут идентичны - тогда придётся выпускать проверять текущую версию БСП - которую задаст программист при инициализации библиотеки (а не версию из конфигурации) - если программист уже перевёл код на новую версию - то он изменит и эту версию. На переходный период - так же должны быть функции с заданной версией БСП в окончании - сначала можно будет переходить на них, потом их можно будет быстро найти заменить на без окончания-версии, когда версия БСП при инициализации сменится

Вообще тут много чего ещё можно придумать!
Например привнести поддержку элементов АОП - коли не типовые функции будут вызываться вместо типовых в самом низу иерархии вызовов (с последующей переадресацией) - то этими вызовами можно управлять более расширено!

Так же я, настоятельно бы, ввёл модуль
СобытияФормыМенеджер - через который бы осуществлял бы ручную "подписку" (и ручную инициация событий) для различных событий формы (на которые в платформе не возможно обобщённо подписаться).
Ну и вообще добавил ещё и общий модуль
СобытияМенеджер - для всех остальных событий, на которые тоже нельзя универсально подписаться (по сути - просто некоторые встроенные обработчики, но, не только платформенные - тут могут быть и БСП-шные функции)

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

ну, а если уж совсем по-хорошему - то для функций такой библиотеки можно будет создать правильные описания (комментарии) и на их основе сгенерировать справку по использованию (а-ля синтаксиис-помошник) - которой ТАК НЕ ХВАТАЕТ для БСП (и других стандартных библиотек), в которой можно будет делать поиск (и видеть для каких версий платформы и БСП предназначена та или иная функциональность - и делать фильтр по этим версиям, и не только по версия - а например по подсистемам тоже).

Читайте также: