Библиотека стандартных подсистем (Механизм БСП)

03.03.17

Разработка - БСП (Библиотека стандартных подсистем)

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

Есть конфигурация, которая облегчает работу разработчика, избавляя его от таких «тривиальных» работ  – это «Библиотека стандартных подсистем» (БСП), которая включает в себя набор универсальных функциональных подсистем и фрагменты раздела «Администрирование», предназначенных для использования в прикладных решениях на платформе «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С v8.3 Бесплатно (free)

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

вчера в 12:00    464    PROSTO-1C    2    

7

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

04.10.2024    1107    MadRave    11    

18

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

10.09.2024    1236    MadRave    1    

16

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    979    n_mezentsev    10    

8

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    3697    John_d    10    

52

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    4774    PROSTO-1C    12    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. МимохожийОднако 142 08.03.17 08:06 Сейчас в теме
Я понял так, что это шпаргалка-дополнение к
http://its.1c.ru/db/bspdoc#content:409:hdoc
denmon88; vano-ekt; +2 Ответить
2. dock 44 08.03.17 08:28 Сейчас в теме
но обычно с БСП на новую пустую конфигурацию переносят все подсистемы.


Для этого нужно выполнить всего-лишь следующие действия (кстати, при любом подходе описанные общий модуль и общий макет добавлять НУЖНО):

1) загружаем cf,
2) снимаем с замка корень, заполняем основные сведения (имя, синоним, поставщик, версия, настройки совместимости)
3) добавляем общий модуль "Префикс_ОбновлениеИнформационнойБазы", содержимое модуля (наиболее важная процедура - остальные не обязательны и можно посмотреть в одноименном модуле БСП):
// См. описание в общем модуле ОбновлениеИнформационнойБазыБСП.
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
	
	Описание.Имя = "ИмяКонфигурации";
	Описание.Версия = "1.2.3.45";
	
	// Требуется библиотека стандартных подсистем.
	//Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
	
КонецПроцедуры
Показать

4) снимаем с замка общий модуль "ПодсистемыКонфигурацииПереопределяемый":

Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт
	
	МодулиПодсистем.Добавить("Префикс__ОбновлениеИнформационнойБазы");    
	   	 	
КонецПроцедуры


5) добавляем общий макет "ОписаниеИзмененийСистемы" с определенной структурой.

запускаем - наслаждаемся.

никаких поисков перекрестных ссылок, используемого/неиспользуемого кода, редактирования форм (а если вы не все подсистемы перенесете, то "Администрирование" придется практически заново переписать...)

минусы:у вас вся библиотека БСП в конфигурации, независимо от того, используете вы что либо или нет.
плюсы:
- очень быстрый "старт";
- всё, что относится к БСП - на поддержке. Если где-то нужно внести изменения, то сняли с поддержки - хоть как-то можно определить в какой модуль влез.
- на порядок проще обновить библиотеку. (если вы действуете как описано в статье - при каждом обновлении вам потребуется повторить анализ всех изменений.)
Goggy; changerus; begemot; A7758735; TheOldGuard; jan-pechka; AlbinaAAA; ixijixi; wowik; dpb@s-terra.com; Yan_Malyakov; Free-lancer; denmon88; vv2; Student1C; Dallal; GoR1313; Gendelf; rusmm93; dsdred; talych; docerman; корум; igormiro; Mettem_Kirill; aikosyapr; purgin; Новенький_2209; SirYozha; vano-ekt; Gluk_1C; Сурикат; pbabincev; jmi; ret-Phoenix; _also; kolya_tlt; NikusXXZ; RuslanZ; WellMaster; suepifanov; _Ramzes; so-quest; +43 Ответить
5. KazanKokos 11 10.03.17 09:33 Сейчас в теме
(2) хороший коммент. )
Gendelf; nightowl; +2 Ответить
8. ILIAS 5 28.04.17 13:36 Сейчас в теме
(2) Попытался сделать пустую конфигурацию Вашим способом с БСП 2.3.5.52.
При запуске выходит ошибка {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(603)}: Метод объекта не обнаружен (ПриОпределенииРежимаОбновленияДанных)
Модуль.ПриОпределенииРежимаОбновленияДанных(РежимОбновленияДанных, СтандартнаяОбработка);
10. dock 44 11.05.17 09:41 Сейчас в теме
(8)
Описание метода не совсем полное - максимально кратко описывал в рамках именно комментария. Данный комментарий является дополнением к статьям на ИТС и к самой публикации.

Если ничего на инфостарте подобного нет - могу написать отдельную статью.
19. MikhailDr 03.08.18 14:07 Сейчас в теме
(8)Вы смогли эту ошибку исправить? У меня то же самое
3. Makushimo 160 09.03.17 05:45 Сейчас в теме
Мало.
Gendelf; vano-ekt; Сурикат; nightowl; +4 Ответить
4. WellMaster 104 10.03.17 09:17 Сейчас в теме
Никогда не мог быстро перенести часть подсистем.
В конечном счете беру весь cf за основу, просто пользуюсь не всем что там есть.
talych; Поручик; +2 1 Ответить
6. Поручик 4691 10.03.17 15:38 Сейчас в теме
Самое лучшее при разработке новой конфы на БСП - это сделать конфу на основе полного cf из комплекта БСП и не иметь мозг.
Проще выкинуть лишнее, например демо-объекты. Сама конфигурация БСП весит всего 40 Мб, то есть размер вообще ни о чём.
Prometeus2011; xten; Светлый ум; A7758735; talych; PchelkaR; stol6; Silenser; V.Stavinsky; config; +10 Ответить
22. PLAstic 296 01.07.22 10:38 Сейчас в теме
(6) Скажи мне, комрад, спустя 5 лет ты так же считаешь или же научился выбирать из списка нужные тебе подсистемы?
Скажу честно, я немного обомлел от этого высказывания. Там же всё просто...
23. Поручик 4691 02.07.22 16:45 Сейчас в теме
(22) Спустя 5 лет я так же считаю.
24. PLAstic 296 04.07.22 12:02 Сейчас в теме
(23) Мой путь в сторону кастомизации новых конфигураций по нужным подсистемам начался как раз с того, что я подумал "зачем заморачиваться, давай просто удалю объекты с приставкой "_Демо".
Удалил, но было много ссылок в определяемых типах и других объектах. А потом огребал ошибки, потому что в куче мест в коде эти демо-объекты были прописаны. И спустя пять лет моей взаимной дружбы с БСП могу сказать: проще потратить 5 минут на выделение той функциональности, которая тебе нужна, из общего списка подсистем БСП. Это правильнее ещё и потому, что тебе как правило не нужно тащить за собой целую портянку подсистем работы "в режиме сервиса". Ты увеличиваешь общее быстродействие за счёт отказа от вызовов ненужных подсистем, которые всё равно будут вызываться.
В общем, жаль, что ты так и не продвинулся в этом направлении.
7. ImHunter 327 10.03.17 15:46 Сейчас в теме
Кроме демо-объектов, есть ведь и объекты для обслуживания ненужных подсистем. Их, по-хорошему, тоже надо убрать. И убрать правильно.
Не пробовал такой подход. Только собирал из нужных станд подсистем.
PLAstic; V.Stavinsky; +2 Ответить
9. kolya_tlt 87 28.04.17 14:51 Сейчас в теме
Подскажите, как правильно добавить новую подсистему, если БСП уже была внедрена. Обновление не проходит, так как версия самая свежая стоит.
11. dock 44 11.05.17 09:46 Сейчас в теме
(9) Так никаких особенностей нет - просто добавляйте новую подсистему. Или есть желание как-то связать с уже существующими объектами ?
Кстати, добавление объектов в Вашу новую подсистему не требует изменения добавляемых объектов (снятие с поддержки).

И да, что именно обновляете и почему не проходит обновление ?
12. kolya_tlt 87 11.05.17 13:11 Сейчас в теме
(11) обновление не подходит из-за того что версия БСП стоит самая свежая.
сравнением и объединением накатываются новые объекты, но почему-то режим поддержки у них выставляется в "объект снят с поддержки" или серый куб
Seneka7608; kaliuzhnyi; +2 Ответить
21. kaliuzhnyi 134 24.09.19 12:24 Сейчас в теме
(12) Как эта беда решается? Ставить сразу все необходимое?
13. Nigelist 17.11.17 13:51 Сейчас в теме
При попытке сохранить настройки для конфигуратора в "Первое внедрение БСП", получаю ошибку:
{ВнешняяОбработка.ПервоеВнедрениеБСП.Форма.Форма.Форма(143)}: Ошибка при вызове метода контекста (КопироватьФайл)
		КопироватьФайл(ИмяФайлаНастроек, Диалог.ПолноеИмяФайла);
по причине:
Ошибка копирования файлов
по причине:
Ошибка копирования файлов из '\tmp\v8_KtdqfR_1c.xml' в 'D:\ФайлНастроекСравнения.xml' : Каталог не обнаружен


Подскажите, что за проблема и как её решить?
14. V.Stavinsky 272 02.01.18 21:50 Сейчас в теме
(13)
каталог то есть создан? может доступа нету к диску или папке?
15. Samur_1C 30.01.18 09:00 Сейчас в теме
16. bulpi 217 05.06.18 09:12 Сейчас в теме
Трындец... Люди придумали себе проблемы и интенсивно решают. Бог в помощь.
А слабО тот кусок, который нужен (обычно маленький), сделать самому ? Вы же программисты, нет ?
user786530; ybatiaev; talych; +3 6 Ответить
17. V.Stavinsky 272 05.06.18 09:20 Сейчас в теме
(16) Зачем изобретать велосипед?
Поручик; Velostrannik; SagittariusA; wowik; Монту; user774630; +6 Ответить
18. beefit 06.06.18 13:52 Сейчас в теме
(16)
А слабО тот кусок, который нужен (обычно маленький), сделать самому ? Вы же программисты, нет ?

конечно лучше все самому написать, "по быстренькому", особенно чтобы потом все это через жопу работало
Goggy; user1804494; user1304317; Поручик; Neuroproton; neo-ti; Velostrannik; SagittariusA; Mnemonik; Монту; mityushov.vv; awp; user774630; +13 1 Ответить
20. matashin 13.06.19 18:01 Сейчас в теме
А как правильно удалять подсистемы?
VKuser138165280; timurche; x2z7yy; +3 Ответить
Оставьте свое сообщение