Обзор полезных методов БСП 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
 
 Оценка производительности

См. также

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

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

1800 руб.

21.11.2024    982    1    6    

5

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

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    2785    milkers    3    

9

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

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

24.10.2024    1339    PROSTO-1C    0    

16

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

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

08.10.2024    1158    PROSTO-1C    4    

14

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

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

04.10.2024    2029    MadRave    11    

24

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

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

10.09.2024    2116    MadRave    4    

18

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

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

06.09.2024    1467    n_mezentsev    10    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. LIL_PIVO 3 27.04.21 13:36 Сейчас в теме
2. DoctorRoza 27.04.21 20:52 Сейчас в теме
На первую часть приложите ссылку, пожалуйста.
3. Rabin 51 28.04.21 10:05 Сейчас в теме
4. Matveev_VS 166 28.04.21 10:18 Сейчас в теме
Согласен, очень полезно это знать.
5. epsilon 29.04.21 13:26 Сейчас в теме
Однозначно в закладки
Bob_Dobr; +1 Ответить
6. wolfsoft 2421 03.05.21 09:04 Сейчас в теме
Ещё бы свести всё это в единое целое и оформить в виде doc-файла.
7. ProfBT 15.09.21 17:49 Сейчас в теме
в шаблон подсказок это не удобнее будет ?
Student1C; +1 Ответить
8. user676027_svikator 125 24.12.21 15:41 Сейчас в теме
9. ikalmykia 13.04.23 16:01 Сейчас в теме
Большая работа! Благодарю!
10. Bob_Dobr 29.06.23 09:39 Сейчас в теме
11. user1553692 17.08.23 23:43 Сейчас в теме
Здравствуйте я что то пропустил или не увидел. а как создать пользователя через БСП?
12. Xershi 1551 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Чел 239 13.11.23 10:02 Сейчас в теме
Сейчас уже 3.1.9 вышла. Автор не планирует обновлять статьи? Или может есть новые других авторов?
14. mikl79 119 06.02.24 12:46 Сейчас в теме
Добрый день, спасибо за труд, уже применил функцию из вашей статьи )))
Возник вопрос - что за типовая конфигурация РТ 2.3? Розница что ли?
Неплохо было бы еще проанализировать из ДО 2.1, 3.0; УНФ 1.6, 3.0
Оставьте свое сообщение