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

См. также

БСП. Добавляем отчет в меню Отчеты

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

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3137    John_d    10    

89

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

01.03.2024    1691    dimanich70    8    

14

Заполнение поля адреса в своей обработке [БСП]

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

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    785    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

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

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

07.02.2024    2614    YA_418728146    11    

43

1С:БСП Дополнительные реквизиты и сведения

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

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

19.01.2024    6302    PROSTO-1C    5    

46

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

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

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3885    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. LIL_PIVO 1 27.04.21 13:36 Сейчас в теме
2. DoctorRoza 27.04.21 20:52 Сейчас в теме
На первую часть приложите ссылку, пожалуйста.
3. Rabin 50 28.04.21 10:05 Сейчас в теме
4. Matveev_VS 160 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 124 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 1484 15.10.23 01:57 Сейчас в теме
	//ИнформацияОФайле = Новый Структура;
    			//ИнформацияОФайле.Вставить("АдресФайлаВоВременномХранилище", АдресФайла);
    			//ИнформацияОФайле.Вставить("АдресВременногоХранилищаТекста", "");
				
				//РаботаСФайлами.ОбновитьФайл(ПрисоединенныйФайл, ИнформацияОФайле);
				
				ИнформацияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
    			ИнформацияОФайле.АдресВременногоХранилищаФайла = АдресФайла;
    			ИнформацияОФайле.ИмяБезРасширения				= ИмяБезРасширения;
				ИнформацияОФайле.РасширениеБезТочки				= РасширениеБезТочки;
				ИнформацияОФайле.ВремяИзменения					= ТекущаяДата();
				ИнформацияОФайле.ВремяИзмененияУниверсальное	= УниверсальноеВремя(ИнформацияОФайле.ВремяИзменения);
				ИнформацияОФайле.Размер							= ДвоичныеДанныеФайла.Размер();
				ИнформацияОФайле.ХранитьВерсии					= Ложь;
				
				РаботаСФайламиСлужебный.ОбновитьВерсиюФайла(ПрисоединенныйФайл, ИнформацияОФайле);				
			
Показать

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

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


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

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

КонецЕсли;     

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

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

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

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

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

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

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

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

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

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

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