Полезные функции БСП (Часть 2)

14.01.21

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

Список полезных функций из состава Библиотеки стандартных подсистем 3.1.

Список полезных функций из состава Библиотеки стандартных подсистем 3.1
Продолжение статьи нашего друга spec8s. (1 Часть)

1.

 // Преобразует текст указанного формата XML в таблицу значений,
// при этом колонки таблицы формируются на основе описания в XML.

ОбщегоНазначения.ПрочитатьXMLВТаблицу(XML)

Пример:

ТаблицаЗначений = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ЧтениеXML);


2.

// Выполняет попытку проведения документов.

ОбщегоНазначения.ПровестиДокументы(Документы)

Пример:

РезультатПроведения = ОбщегоНазначения.ПровестиДокументы(Запрос.Выполнить()Выгрузить());

3.

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

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

Пример:

Массив = новый Массив;
Массив.Добавить(ДокументСсылка);
	
ТаблицаИспользованияСсылки = ОбщегоНазначения.МестаИспользования(Массив);
	

4.

// Дополняет массив МассивПриемник значениями из массива МассивИсточник.

ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь)

// Дополняет соответствие значениями из другого соответствия.

ОбщегоНазначенияКлиентСервер.ДополнитьСоответствие(Приемник, Источник, Заменять = Неопределено)

// Дополняет структуру значениями из другой структуры.

ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Приемник, Источник, Заменять = Неопределено)

// Дополняет таблицу значений - приемник данными из таблицы значений - источника.
// Типы ТаблицаЗначений, ДеревоЗначений, ТабличнаяЧасть не доступны на клиенте.

ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ТаблицаИсточник, ТаблицаПриемник)

// Дополняет таблицу значений Таблица значениями из массива Массив.

ОбщегоНазначенияКлиентСервер.ДополнитьТаблицуИзМассива(Таблица, Массив, ИмяПоля)

Пример:


ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивПриемник, МассивИсточник)

ОбщегоНазначенияКлиентСервер.ДополнитьСоответствие(СоответствиеПриемник, СоответствиеИсточник, ложь)

ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(СтруктураПриемник, СтруктураИсточник, ложь)

ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ТаблицаИсточник, ТаблицаПриемник)

ОбщегоНазначенияКлиентСервер.ДополнитьТаблицуИзМассива(Таблица, Массив, "ИмяПоляТаблицы")

5.

// Создает напоминание с произвольным временем или расписанием выполнения.

НапоминанияПользователя.УстановитьНапоминание(Текст, ВремяСобытия, ИнтервалДоСобытия = 0, Предмет = Неопределено, Идентификатор = Неопределено)

Пример:

Время = НачалоДня(ТекущаяДата()) + 50400; //14:00
ТаблицаИспользованияСсылки = НапоминанияПользователя.УстановитьНапоминание("Совещание в 14:00!",Время,3600)

6.

// Возвращает структуру, содержащую сведения об организации.

ОрганизацииСервер.СведенияОбОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено)

Пример:

ОсновнаяОрганизация = Справочники.организации.ОрганизацияПоУмолчанию();
СведенияОбОрганизацииСтруктура = ОрганизацииСервер.СведенияОбОрганизации(ОсновнаяОрганизация);

7.

// Отправляет SMS через настроенного поставщика услуги, возвращает идентификатор сообщения.

ОтправкаSMS.ОтправитьSMS(НомераПолучателей, Знач Текст, ИмяОтправителя = Неопределено, ПеревестиВТранслит = Ложь)

 Пример:

Если ОтправкаSMS.ДоступнаОтправкаSMS() тогда
	Массив = новый Массив;
	Массив.Добавить("+79990000333");
		
	РезультатОтправки = ОтправкаSMS.ОтправитьSMS(Массив,"Тестовое SMS", "Администратор")	
КонецЕсли;

8.

// Производит замену ссылок во всех данных информационной базы. 
//
// Параметры:
//     Параметры - Структура - где:
//       * ПарыЗамен - Соответствие - Пары замен.
//           * Ключ     - ЛюбаяСсылка - Что ищем (дубль).
//           * Значение - ЛюбаяСсылка - На что заменяем (оригинал).
//           Ссылки сами на себя и пустые ссылки для поиска будут проигнорированы.
//       * СпособУдаления - Строка - Необязательный. Что делать с дублем после успешной замены.
//           ""                - По умолчанию. Не предпринимать никаких действий.
//           "Пометка"         - Помечать на удаление.
//           "Непосредственно" - Удалять непосредственно.
//     АдресРезультата - Строка - адрес временного хранилища, куда будет помещен результат замены - ТаблицаЗначений:
//       * Ссылка - ЛюбаяСсылка - Ссылка, которую заменяли.
//       * ОбъектОшибки - Произвольный - Объект - причина ошибки.
//       * ПредставлениеОбъектаОшибки - Строка - Строковое представление объекта ошибки.
//       * ТипОшибки - Строка - Маркер типа ошибки. Возможны варианты:
//                              "ОшибкаБлокировки"  - при обработке ссылки некоторые объекты были заблокированы
//                              "ДанныеИзменены"    - в процессе обработки данные были изменены другим пользователем
//                              "ОшибкаЗаписи"      - не смогли записать объект
//                              "НеизвестныеДанные" - при обработке были найдены данные, которые
//                                                    не планировались к анализу, замена не реализована
//                              "ЗаменаЗапрещена"   - обработчик ВозможностьЗаменыЭлементов вернул отказ.
//       * ТекстОшибки - Строка - Подробное описание ошибки.

ПоискИУдалениеДублей.ЗаменитьСсылки(Параметры, Знач АдресРезультата)

 Пример:

		СтруктураПараметровЗамены = новый Структура;
		
		ПарыЗамен = новый Соответствие;
		ПарыЗамен.Вставить(Справочники.Пользователи.НайтиПоКоду("01"),Справочники.Пользователи.ПустаяСсылка());
		
		СтруктураПараметровЗамены.Вставить("ПарыЗамен",ПарыЗамен);
		СтруктураПараметровЗамены.Вставить("СпособУдаления","Пометка");
		
		Адрес = "";
		
		ПоискИУдалениеДублей.ЗаменитьСсылки(СтруктураПараметровЗамены,Адрес);
		
		Результат = ПолучитьИзВременногоХранилища(Адрес);

9.

// Возвращает текущего пользователя.

Пользователи.ТекущийПользователь();

//ПРИМЕР

ТекущийПользователь = Пользователи.ТекущийПользователь()

10.

// Определяет форму ФИО в заданном падеже.

СклонениеПредставленийОбъектов.ПросклонятьФИО(ФИО,Падеж,Объект,Пол)

 Пример:

ФИО = "Иванов Иван Иванович";
Падеж = 2; //Родительный
Объект = Справочники.ФизическиеЛица.НайтиПоКоду("01");
Пол = 1;   //Мужской
		
Результат = СклонениеПредставленийОбъектов.ПросклонятьФИО(ФИО,Падеж,Объект,Пол)
		

 

 

функции БСП

См. также

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

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

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

02.04.2024    3189    John_d    10    

89

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

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

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

01.03.2024    1729    dimanich70    8    

14

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

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

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

12.02.2024    804    FilippovRI    0    

15

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

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

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

07.02.2024    2651    YA_418728146    11    

44

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

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

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

19.01.2024    6442    PROSTO-1C    5    

46

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

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

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

15.01.2024    3897    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Hans 2 10.03.20 10:27 Сейчас в теме
2. user5300 1014 10.03.20 10:43 Сейчас в теме
Продолжение статьи нашего друга spec8s.

https://infostart.ru/public/327028/
(1)
3. PLAstic 295 10.03.20 17:32 Сейчас в теме
Мне кажется, не надо было такую свежую версию БСП брать. Что-нибудь из 3.0.х было бы более востребовано.
Хотя, далеко не все описанные методы являются "свежими".
4. user5300 1014 10.03.20 19:03 Сейчас в теме
(3) Я описал наиболее полезные функции которые помогут в решении многих задач. конечно это далеко не весь список, будем дополнять по мере возможности новыми процедурами и функциями)
БСП использовал наиболее актуальную, но большая часть используется и в 3.0 ) спасибо
5. user598128_able123 5 11.03.20 03:25 Сейчас в теме
ждем третью часть))
niki295; user5300; +2 Ответить
6. ImHunter 315 11.03.20 06:48 Сейчас в теме
(0) А где же ОбщегоНазначенияКлиентСервер: Проверить(...) и ПроверитьПараметр(...) ?...
Соблюдение контрактов - это наше все;)
user5300; +1 Ответить
7. Sla 11.03.20 08:08 Сейчас в теме
Спасибо, отличная тема для циклов статей!
Предложение: указывать тип возвращаемого значения (для функций), было бы удобно)
AlexandrSmith; +1 Ответить
8. user5300 1014 11.03.20 10:15 Сейчас в теме
(7) Вообще в модулях описывается каждая процедура и функция )
но постараюсь дополнить в статье в ближайшее время!)
9. kirill_sh 1 11.03.20 10:30 Сейчас в теме
Интересные функции из БСП 👍
user5300; +1 Ответить
10. parshin 78 12.03.20 08:24 Сейчас в теме
Спасибо!
Добавьте, пожалуйста, ссылку на первую часть.
11. parshin 78 12.03.20 08:24 Сейчас в теме
12. AlexeyT1978 205 16.03.20 13:22 Сейчас в теме
13. BigB 191 24.03.20 21:36 Сейчас в теме
А не лучше ли вместо
Пользователи.ТекущийПользователь()
использовать
ПараметрыСеанса.ТекущийПользователь
al.gerasimov; +1 Ответить
14. user5300 1014 25.03.20 08:10 Сейчас в теме
(13) От перестановки слагаемых сумма не меняется)

Результат такой же - решения разные.

Кстати для получения текущего пользователя на Клиенте:
 ТП = ПользователиКлиентСервер.ТекущийПользователь() ;
15. resonance 81 21.04.20 17:36 Сейчас в теме
Спасибо, очень познавательно.
user5300; +1 Ответить
16. al.gerasimov 31.08.20 00:22 Сейчас в теме
Мне одному кажется, что вместо
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивПриемник, МассивИсточник)

должно быть
МассивПриемник.Дополнить(МассивИсточник)

И вообще заучивать методы библиотек в 2020 году как-то не очень.
20. Hans 2 13.07.21 14:30 Сейчас в теме
(16) Не то что не очень, это становится обязательным.
17. user635667 138 02.09.20 09:18 Сейчас в теме
Расскажите подробнее про
ОбщегоНазначения.ПрочитатьXMLВТаблицу(XML)

Ну выполняю я такую конструкцию:
ТаблицаЗначений = ОбщегоНазначения.ПрочитатьXMLВТаблицу(Объект.МойФайлXML);

Выдает ошибку:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty

Эту ТаблицаЗначений надо заранее создать и столбиками заполнить или как вообще???
18. user5300 1014 02.09.20 10:00 Сейчас в теме
(17)
// Преобразует текст формата XML в таблицу значений,
// при этом колонки таблицы формируются на основе описания в XML.
//
// Параметры:
//  XML     - текст в формате XML или ЧтениеXML.
//
// Схема XML:
//<?xml version="1.0" encoding="utf-8"?>
//<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
//  <xs:element name="Items">
//	<xs:complexType>
//	  <xs:sequence>
//		<xs:element maxOccurs="unbounded" name="Item">
//		  <xs:complexType>
//			<xs:attribute name="Code" type="xs:integer" use="required" />
//			<xs:attribute name="Name" type="xs:string" use="required" />
//			<xs:attribute name="Socr" type="xs:string" use="required" />
//			<xs:attribute name="Index" type="xs:string" use="required" />
//		  </xs:complexType>
//		</xs:element>
//	  </xs:sequence>
//	  <xs:attribute name="Description" type="xs:string" use="required" />
//	  <xs:attribute name="Columns" type="xs:string" use="required" />
//	</xs:complexType>
//  </xs:element>
//</xs:schema>
//
// Примеры XML-файлов см. в демонстрационной конфигурации.
// 
// Пример использования:
//   КлассификаторТаблица = ПрочитатьXMLВТаблицу(РегистрыСведений.АдресныйКлассификатор.
//       ПолучитьМакет("КлассификаторАдресныхОбъектовРоссии").ПолучитьТекст());
//
// Возвращаемое значение:
//  Структура с полями 
//   ИмяТаблицы - Строка
//   Данные - ТаблицаЗначений.

Показать
user635667; +1 Ответить
19. GatoDelgado 04.02.21 04:06 Сейчас в теме
Возвращает значение дополнительного свойства объекта:
УправлениеСвойствами.ЗначениеСвойства

Мне кажется часто нужен и достоин упоминания.
Неопределено; +1 Ответить
21. Sergey Seredkin 14.11.23 12:27 Сейчас в теме
При добавление массива в массив -
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивПриемник, МассивИсточник, истина);
Оставьте свое сообщение