Обзор полезных методов БСП 3.1.4. Часть 2

27.04.21

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

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

Как велась подготовка материала

Официальная документация неплохо структурирована и подробно описывает каждый метод. Единственная трудность, с которой я столкнулся, было незнание, какие методы наиболее популярны в основных типовых решениях. Что необходимо знать в первую очередь, а какой функционал оставить на потом. Цель статьи - собрать и упорядочить методы по популярности (суммарным количеством вызовов). Что было сделано:

1. Из официальной документации получены все вызовы (за исключением раздела "Предопределенные").

2. Далее, производился поиск и подсчет каждого метода в 5-х типовых конфигурациях: УТ 11.4, РТ 2.3, БП 3.0, ЗУП 3.1 и ERP 2.4.

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

Часть 1. Базовая функциональность.

 

Часть 2. Остальные разделы

 
 Пользователи
 
 Печать
 
 Варианты отчетов
 
 Контактная информация
 
 Валюты
 
 Префиксация объектов
 
 Склонение представлений объектов
 
 Генерация штрихкода
 
 Работа с файлами
 
 Получение файлов из Интернета
 
 Даты запрета изменения
 
 Запрет редактирования реквизитов объектов
 
 Дополнительные отчеты и обработки
 
 Работа с почтовыми сообщениями
 
 Отправка SMS
 
 Оценка производительности

INFOSTART TOOLKIT

Самый продвинутый набор инструментов для управляемых форм 1С:8.3. Включает Консоль запросов, Консоль СКД, Консоль кода, Редактор объектов, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Подписки на события и другие утилиты для разработчиков.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

23.09.2025    4943    AlexeyPROSTO_1C    1    

15

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

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    3682    _seerco2002    0    

33

Нейросети БСП (Библиотека стандартных подсистем) Инструментарий разработчика Программист 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Telegram-бот для разработчиков 1С, работающих с БСП. Если не знаете нужный под задачу метод или не помните название, то опишите боту задачу и получите список подходящих экспортных методов из общих модулей БСП.

02.09.2025    5137    krasnov322    22    

40

Анализ учета БСП (Библиотека стандартных подсистем) 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

22.05.2025    3787    127    seperblunt    9    

25

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С v8.3 1C:ERP Бесплатно (free)

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

12.05.2025    4499    AlexeyPROSTO_1C    2    

18

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

Наткнулся на костыль по работе с ролями. Хочу поделиться, как не попасть на это странное поведение БСП.

07.05.2025    7765    dsdred    32    

89

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

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

29.04.2025    4634    krasnoshchekovpavel    7    

19

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

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

01.04.2025    3295    krasnoshchekovpavel    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. LIL_PIVO 4 27.04.21 13:36 Сейчас в теме
2. DoctorRoza 27.04.21 20:52 Сейчас в теме
На первую часть приложите ссылку, пожалуйста.
3. Rabin 53 28.04.21 10:05 Сейчас в теме
4. Matveev_VS 168 28.04.21 10:18 Сейчас в теме
Согласен, очень полезно это знать.
5. epsilon 29.04.21 13:26 Сейчас в теме
Однозначно в закладки
6. wolfsoft 2421 03.05.21 09:04 Сейчас в теме
Ещё бы свести всё это в единое целое и оформить в виде doc-файла.
7. ProfBT 15.09.21 17:49 Сейчас в теме
в шаблон подсказок это не удобнее будет ?
Student1C; +1 Ответить
8. user676027_svikator 126 24.12.21 15:41 Сейчас в теме
9. ikalmykia 13.04.23 16:01 Сейчас в теме
Большая работа! Благодарю!
10. Bob_D 29.06.23 09:39 Сейчас в теме
11. user1553692 17.08.23 23:43 Сейчас в теме
Здравствуйте я что то пропустил или не увидел. а как создать пользователя через БСП?
12. Xershi 1527 15.10.23 01:57 Сейчас в теме
	//ИнформацияОФайле = Новый Структура;
    			//ИнформацияОФайле.Вставить("АдресФайлаВоВременномХранилище", АдресФайла);
    			//ИнформацияОФайле.Вставить("АдресВременногоХранилищаТекста", "");
				
				//РаботаСФайлами.ОбновитьФайл(ПрисоединенныйФайл, ИнформацияОФайле);
				
				ИнформацияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
    			ИнформацияОФайле.АдресВременногоХранилищаФайла = АдресФайла;
    			ИнформацияОФайле.ИмяБезРасширения				= ИмяБезРасширения;
				ИнформацияОФайле.РасширениеБезТочки				= РасширениеБезТочки;
				ИнформацияОФайле.ВремяИзменения					= ТекущаяДата();
				ИнформацияОФайле.ВремяИзмененияУниверсальное	= УниверсальноеВремя(ИнформацияОФайле.ВремяИзменения);
				ИнформацияОФайле.Размер							= ДвоичныеДанныеФайла.Размер();
				ИнформацияОФайле.ХранитьВерсии					= Ложь;
				
				РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ПрисоединенныйФайл, ИнформацияОФайле);				
			
Показать

Пришлось переписывать код, изображение не обновлялось в справочнике файлов.
Подсмотрел код, как в типовой кнопке обновить из файла делается.
15. AnPet 3 22.02.24 12:27 Сейчас в теме
(12)
ИнформацияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
ИнформацияОФайле.АдресВременногоХранилищаФайла = АдресФайла;
ИнформацияОФайле.ИмяБезРасширения = ИмяБезРасширения;
ИнформацияОФайле.РасширениеБезТочки = РасширениеБезТочки;
ИнформацияОФайле.ВремяИзменения = ТекущаяДата();
ИнформацияОФайле.ВремяИзмененияУниверсальное = УниверсальноеВремя(ИнформацияОФайле.ВремяИзменения);
ИнформацияОФайле.Размер = ДвоичныеДанныеФайла.Размер();
ИнформацияОФайле.ХранитьВерсии = Ложь;

РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ПрисоединенныйФайл, ИнформацияОФайле);


Тоже бьюсь, чтобы при программном обновлении файла менялся его размер в карточке. БСП этого не делает.
Попробовал ваш метод - не получается.
Использую на справочнике КонтрагентыПрисоединенныеФайлы в УНФ (3.0.6.126)
На справочниках этого типа нет реквизита "ТекущаяВерсия", а в функции РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(...) присутсвует такой код:

Если СведенияОФайле.ХранитьВерсии Тогда
    // ....
Иначе
		
		СсылкаНаВерсию = ?(ВерсияСсылка = Неопределено, ТекущаяВерсия(ФайлСсылка), ВерсияСсылка);
		Версия = СсылкаНаВерсию.ПолучитьОбъект();
		БлокироватьВерсию = Истина;

КонецЕсли;     

Версия.Владелец = ФайлСсылка;
Показать

Если вызывать
РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ПрисоединенныйФайл, ИнформацияОФайле);

то вылетает по исключению т.к упирается в несуществующий реквизит.

Попробовал вызвать:
РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ПрисоединенныйФайл, ИнформацияОФайле, ПрисоединенныйФайл);

вылетает по исключению на Версия.Владелец = ФайлСсылка; - попытка присвоить владельцу ссылку на себя

Заменять полностью в расширении РаботаСФайлами.ОбновитьФайл(...) чревато.
Похоже, придется делать вторую перезапись справочника КонтрагентыПрисоединенныеФайлы с обновлением реквизита Размер.
16. AnPet 3 22.02.24 15:20 Сейчас в теме
(15)
Нашел решение
Процедура ОбновитьФайл(ИнформацияОФайле, ПрисоединенныйФайл) Экспорт
// ...
     ОбновитьДвоичныеДанныеФайлаНаСервере(ПрисоединенныйФайл, ДвоичныеДанные, РеквизитыЗначения);
//...

Процедура ОбновитьДвоичныеДанныеФайлаНаСервере(Знач ПрисоединенныйФайл,
	                                           Знач АдресФайлаВоВременномХранилищеДвоичныеДанные,
	                                           Знач РеквизитыЗначения = Неопределено)
//...
      МенеджерФайла.ПередЗаписьюДанныхФайла(Контекст, ФайлОбъект);
	  ФайлОбъект.Записать();
	  МенеджерФайла.ПриОбновленииДанныхФайла(Контекст, ФайлОбъект.Ссылка);
	  ЗафиксироватьТранзакцию();
...

Процедура ПередЗаписьюДанныхФайла(Контекст, ПрисоединенныйФайлОбъект) Экспорт
	Возврат; // Не используется
КонецПроцедуры
Показать

Берем ПередЗаписьюДанныхФайла() в расширение и пишем там:
ПрисоединенныйФайлОбъект.Размер = Контекст.ДанныеФайла.Размер();

Или, что кому надо )

Надеюсь кому то будет полезно.
DenisDavidov; +1 Ответить
13. Дмитрий74Чел 248 13.11.23 10:02 Сейчас в теме
Сейчас уже 3.1.9 вышла. Автор не планирует обновлять статьи? Или может есть новые других авторов?
14. mikl79 120 06.02.24 12:46 Сейчас в теме
Добрый день, спасибо за труд, уже применил функцию из вашей статьи )))
Возник вопрос - что за типовая конфигурация РТ 2.3? Розница что ли?
Неплохо было бы еще проанализировать из ДО 2.1, 3.0; УНФ 1.6, 3.0
Для отправки сообщения требуется регистрация/авторизация