Способ хранения данных расширения или дополнительной обработки

Публикация № 1243789 01.06.20

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

Обработка БСП Настройки Начинающим

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

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

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

В своей практике я использую другой способ: в конфигурациях, использующих Библиотеку стандартных подсистем, есть встроенные объекты и процедуры для хранения каких либо данных настроек. Это два регистра сведений - БезопасноеХранилищеДанных и БезопасноеХранилищеДанныхОбластейДанных.

 
 Регистры сведений БезопасноеХранилищеДанных и БезопасноеХранилищеДанныхОбластейДанных

Эти регистры предназначены для хранения какой-либо конфиденциальной информации. В качестве измерения Владелец можно использовать ссылку на элемент Плана обмена, Справочника или использовать строку до 128 символов. Тип ресурса Данные - ХранилищеЗначения, в который обычно записывается данные типа Структура. Данные такого регистра просто не "вытащить" в пользовательском режиме универсальным отчетом или консолью запросов. Конечно, кроме паролей и токенов, можно хранить данные других типов. 

Чтобы не разбираться какой из регистров когда использовать, для работы с этими регистрами сведений имеется программный интерфейс - процедура и функция общего модуля ОбщегоНазначения:

Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт
Функция ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключи = "Пароль", ОбщиеДанные = Неопределено) Экспорт

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

Пример реализации

Рассмотрим пример сохранения каких-либо настроек Дополнительной обработки. Для этого создадим форму Настройки. В форме создадим команду ЗаписатьИЗакрыть и выведем ее в виде кнопки по умолчанию.

Форма будет иметь реквизиты для редактирования: ГруппаНоменклатуры и Контр агент, и два служебных: КлючДанных и ДополнительнаяОбработкаСсылка.

Поместим в модуль формы следующий код:

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

&НаСервере
Процедура ЗаписатьИЗакрытьНаСервере()
	Данные=Новый Структура;
	Для Каждого Элемент из Элементы Цикл
		Если ТипЗнч(Элемент)=Тип("ПолеФормы") Тогда
			Данные.Вставить(Элемент.Имя, ЭтаФорма[Элемент.Имя])
		КонецЕсли;
	КонецЦикла;
	ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ДополнительнаяОбработкаСсылка, Данные, КлючДанных); 
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	ЗаписатьИЗакрытьНаСервере();
	Закрыть();
КонецПроцедуры

В процедуре ПриСозданииНаСервере проверяются параметры, переданные в форму. Если параметры содержат свойство ДополнительнаяОбработкаСсылка, то это значит что форма открыта с использованием подсистемы ДополнительныеОтчетыИОбработки и в качестве владельца настроек будет использован элемент справочника ДополнительныеОтчетыИОбработки. В противном случае владельцем будет строка - полное имя обработки. После определения владельца считываем данные из регистра с использованием функции программного интерфейса, и, если сохранённые данные редставляют собой структуру, заполняем ими значения реквизитов формы. Теперь при создании формы в значения реквизитов будут установлены ранее сохранённые значения.

Обработку команды ЗаписатьИЗакрыть передадим на сервер. Там сформируем структуру из значений всех полей, которые выведены на форму. И эту структуру запишем в регистр, используя процедуру программного интерфейса Библиотеки стандартных подсистем.

Собственно, с формой настроек дополнительной обработки всё. Подобный механизм можно использовать и для хранения дополнительных данных справочника, если для него не включен механизм ДополнительныеРеквизитыИСведения, либо нет подходящего типа значения дополнительного реквизита. 

Дополнительная обработка

Бонусом добавлю пример использования описанного механизма в дополнительной обработке, который можно использовать в качестве шаблона. В модуль объекта вставим следующий код:

Функция СведенияОВнешнейОбработке() Экспорт	
	ПараметрыРегистрации=ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид=ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия="1.0.0.1";
	ПараметрыРегистрации.Наименование="ДемоСохранениеНастроек";
	ПараметрыРегистрации.Информация="Описание способа хранения данных расширения или дополнительной обработки в информационной базе с использованием функционала Библиотеки стандартных подсистем.";
	
	Команда=ПараметрыРегистрации.Команды.Добавить();
	Команда.Идентификатор="Настройка";
	Команда.Представление="Настройка";
	Команда.Использование=ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
	
	Команда=ПараметрыРегистрации.Команды.Добавить();
	Команда.Идентификатор="Выполнить";
	Команда.Представление="Прочитать настройки";
	Команда.Использование=ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
	
	Возврат ПараметрыРегистрации;
КонецФункции

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

Конечно, для данного примера можно было использовать только форму Настройки, однако я хочу продемонстрировать открытие разных форм одной Дополнительной обработки. Необходимо так же, как и в форме Настройки, создать служебный реквизит формы ДополнительнаяОбработкаСсылка. В модуле формы создадим следующие процедуры и функции:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	МД=РеквизитФормыВЗначение("Объект").Метаданные();
	ИмяОбработки=МД.Имя;
	
	ДополнительнаяОбработкаСсылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ДополнительнаяОбработкаСсылка");	
	Если не ЗначениеЗаполнено(ДополнительнаяОбработкаСсылка) Тогда
		 ДополнительнаяОбработкаСсылка=МД.ПолноеИмя();
	КонецЕсли;
КонецПроцедуры


&НаКлиенте
Процедура ВыполнитьКоманду(Идентификатор) Экспорт
	Если Идентификатор="Настройка" Тогда
		ОткрытьФорму("ВнешняяОбработка."+ИмяОбработки+".Форма.Настройки", Новый Структура("ДополнительнаяОбработкаСсылка",ДополнительнаяОбработкаСсылка));
	ИначеЕсли Идентификатор="Выполнить" Тогда
		Сообщить(СохраненыеДанные())
	КонецЕсли; 	
КонецПроцедуры

&НаСервере
Функция СохраненыеДанные()
	УстановитьПривилегированныйРежим(Истина);
	Данные=ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ДополнительнаяОбработкаСсылка, "Настройки");
	МассивПолей=Новый Массив;
	Если ТипЗнч(Данные)=Тип("Структура") Тогда
		Для каждого КлючИЗначение из Данные Цикл
			МассивПолей.Добавить(КлючИЗначение.Ключ+": "+КлючИЗначение.Значение);
		КонецЦикла;			
	КонецЕсли;
	Возврат СтрСоединить(МассивПолей, Символы.ПС);
КонецФункции

В процедуре ПриСозданииНаСервере производится чтение переданного через параметры формы свойства ДополнительнаяОбработкаСсылка, которое указывает на элемент справочника ДополнительныеОтчетыИОбработки. Экспортная процедура ВыполнитьКоманду вызывается программным интерфейсом подсистемы ДополнительныеОтчетыИОбработк. В ней, в зависимости от переданного параметра - идентификатора команды, открывается либо форма настроек, либо производится чтение отображение и настроек. Поскольку в БСП права на чтение и запись описываемых регистров хранения настроек доступны только для роли ПолныеПрава, то перед чтением сохраненных данных в функции Сохранены еДанные установим привилегированный режим. В этом случае доступ к настройкам может получить пользователь, в независимости от установленных прав. Хочу обратить внимание, как в функции Сохранены еДанные реализовано соединение строк. В отличие от традиционного соединения строк в цикле вида Стр=Стр+Значение, строки сначала помещаются в массив, а затем с помощью функции СтрСоединить соединяются. Этот вариант рекомендован для сложения строк в цикле с большим числом итераций, так как дает ощутимый выигрыш в производительности при крупных многопользовательских системах.

Описанные механизмы и процедуры можно использовать для собственных дополнительных обработок, поэтому файл я не прилагаю.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. Sedaiko 423 01.06.20 13:15 Сейчас в теме
(1) Спасибо за комментарий. Для доп.обработок это правильный способ. Но я этот вариант перестал использовать с тех пор, как начал помещаять свои доп.обработки сразу в расширение.
4. dhurricane 01.06.20 13:20 Сейчас в теме
(3) Что тогда Вы используете в качестве владельца сохраняемых данных?
5. Sedaiko 423 01.06.20 13:21 Сейчас в теме
(4)
В качестве измерения Владелец можно использовать ссылку на элемент Плана обмена, Справочника или использовать строку до 128 символов
14. МимохожийОднако 140 07.06.20 08:20 Сейчас в теме
(3) Скинь пример для расширения. Например, создал регистр сведений в расширении и мне его надо сохранить на случай удаления расширения
15. Sedaiko 423 07.06.20 08:53 Сейчас в теме
(14) Если бэкапить регистр сведений - то проще его сериализовать в xml и залить в прикрепленный файл используя подсистему БСП РаботаСФайлами.
А пример расширений не скину - они у меня все под конкретную задачу
16. independ 1348 07.06.20 10:51 Сейчас в теме
(14)
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); 
Строка=ЗначениеВСтрокуВнутр(НаборЗаписей.Прочитать().Выгрузить()); 
МимохожийОднако; +1 Ответить
2. Новиков 292 01.06.20 13:03 Сейчас в теме
Спасибо! Интересный пример с двумя формами :)
13. dsdred 1816 02.06.20 09:49 Сейчас в теме
6. VmvLer 01.06.20 13:36 Сейчас в теме
кто-нить понял, тут надувают грелку или жабу?
7. davdykin 25 01.06.20 17:56 Сейчас в теме
Спасибо, интересно, во-первых обработка с двумя формами, во-вторых кусочек БСП ))
8. json 2996 02.06.20 05:52 Сейчас в теме
Поставил плюс за доступное описание механизма безопасного хранения данных.

Интересно было бы узнать в каких именно случаях следует использовать данный механизм, а в каких не следует.

Почему, например, для внешней обработки я должен использовать безопасное хранилище данных?
В статье сказано, что в этих регистрах информация хранится так, что ее нельзя считать консолью, но ведь и в реквизите ХранилищеНастроек информация хранится в точно таком же виде.
Какие еще аргументы в пользу использования данного механизма с дополнительными обработками?
Получается что данная статья не отвечает на вопрос "зачем?", но отвечает на вопрос "как?".

Скорее этот механизм есть смысл использовать, когда надо хранить пароли, токены для встроенных объектов или я ошибаюсь?
9. Sedaiko 423 02.06.20 06:40 Сейчас в теме
(8) Дополнительные обработки - это в качестве примера работы. На практике в Безопасном хранилище следует хранить токены и пароли, так как от доступен только под полными правами. Обычно я описанное хранилище использую для обработок встроенных в расширение. А помещаю их в расширение для защиты - доступен модуль менеджера, который можно запаролить.
10. PerlAmutor 126 02.06.20 06:43 Сейчас в теме
(8) Внешние печатные формы. У нас много подразделений со своими ответственными лицами (руководители, бухгалтеры и т.д.). При формировании печатных форм, в подвале документа, должны стоять соответствующие расшифровки подписей. Каждый документ из которого формируется печатная форма должен эту информацию как-то хранить. Для этого я делал отдельный регистр настроек печатных форм, где было 3 измерения: Уникальный идентификатор документа, Уникальный идентификатор обработки, Имя параметра и ресурс Значение.

Используя БезопасноеХранилищеДанных можно сделать подобное. В качестве измерения Владелец хранить хэш от комбинации
Уникальный идентификатор документа + уникальное имя внешней печатной формы. В Данные помещать структуру со всеми параметрами.

Для формирования ключей в модуле ОбщегоНазначения из БСП есть замечательная функция:

Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт
	ОбщегоНазначенияКлиентСервер.Проверить(МаксимальнаяДлина >= 32, НСтр("ru = 'Параметр МаксимальнаяДлина не может быть меньше 32';
																		|en = 'The МаксимальнаяДлина parameter cannot be less than 32'"),
		"ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой");
	
	Результат = Строка;
	Если СтрДлина(Строка) > МаксимальнаяДлина Тогда
		Результат = Лев(Строка, МаксимальнаяДлина - 32);
		ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
		ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - 32 + 1));
		Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
	КонецЕсли;
	Возврат Результат;
КонецФункции
Показать


Остается только "склеивать" уникальную комбинацию измерений в одну строку по переданным параметрам и записывать в качестве владельца. В качестве минуса можно отметить факт того, что нельзя запросом получить информацию о том, что в данный момент находится в регистре. Например получить данные только по одному измерению, только те строки, которые используются для одной конкретной обработки. Частично эту проблему можно решить перебором всех строк регистра получая Данные из ХранилищаЗначений и поиском в них какой-то ожидаемой структуры. Но для этого придется писать отдельную функцию и скорость её работы может оставлять желать лучшего.

Так что этот регистр может подойти не для всех случаев.
11. Sedaiko 423 02.06.20 06:47 Сейчас в теме
(10)
получить данные только по одному измерению, только те строки, которые используются для одной конкретной обработки
А чем ПОДОБНО "%"+ИмяОбработки+"%" не подходит?
12. PerlAmutor 126 02.06.20 06:52 Сейчас в теме
(11) Там будет MD5 хэш не превышающий 128 символов вместо "человеческих" строк.
17. Cyberhawk 130 09.07.20 23:46 Сейчас в теме
перед чтением сохраненных данных в функции СохраненыеДанные установим привилегированный режим. В этом случае доступ к настройкам может получить пользователь, в независимости от установленных прав
Только если обработка подключена в небезопасном режиме. Иначе установка привилегированного режима просто будет молча проигноирована.
Оставьте свое сообщение

См. также

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

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

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

03.03.2017    83733    V.Stavinsky    22    

Использование отчетов в конфигурациях на базе БСП 3.1.5 на примере 1С: Комплексная автоматизация 2.4

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

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

20.12.2021    496    Sergey1CSpb    5    

Как указать время в периоде типового отчета (СтандартныйПериод, СКД) в системах класса WMS, MES, SCADA, АСУ ТП на 1С, построить отчет за период с временем?

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

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

13.12.2021    518    SizovE    0    

Подключение функционала "Присоединенные файлы" для нового объекта (БСП)

БСП (Библиотека стандартных подсистем) v8 v8::УФ БП3.0 Россия Бесплатно (free)

Данная статья поможет добавить "скрепку", т.е. возможность пользоваться функционалом БСП для присоединения файлов к любому документу.

24.11.2021    2596    kalyuzhnyyp    24    

Профили управления доступом к объектам в любой конфигурации на БСП

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

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

17.11.2021    2353    quazare    3    

Журнал регистрации - основные методы работы через БСП

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

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

11.11.2021    3889    quazare    10    

Базовые приемы работы с кластером 1С при помощи БСП

Администрирование СУБД БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

26.10.2021    3600    quazare    6    

Подключение нового справочника к подсистемам БСП (дополнительные реквизиты, файлы, запрет редактирования)

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

В данной статье я привожу пример подключения нового справочника к подсистемам БСП. Статья будет применима как к самописным конфигурациям на базе БСП, так и к типовым УТ, ERP, БП и прочим конфигурациям на базе БСП.

17.08.2021    2634    maraty    13    

Префиксация объектов - полезный типовой функционал БСП

Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия БУ УУ Бесплатно (free)

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

21.06.2021    5454    quazare    4    

Особенности online-обмена между старыми и новыми типовыми

Перенос данных из 1C8 в 1C8 БСП (Библиотека стандартных подсистем) v8 8.3.14 8.3.6 8.3.8 КА1 КД ДО Бесплатно (free)

Столкнулся с неприятной особенностью потери части данных при обмене УСО (УПП) - ДО.

01.06.2021    3209    echo77    7    

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

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

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

27.04.2021    18261    rayastar    8    

Обзор полезных методов БСП 3.1.4

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

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

25.03.2021    47001    rayastar    53    

Печать макета MS Word в любом документе с помощью БСП

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

В данной статье рассмотрим типовой функционал вывода на печать макетов печатных форм MS Word (*.docx) для любого документа конфигурации, основанной на библиотеке стандартных подсистем. Вариант клиент-серверный.

23.02.2021    7133    quazare    6    

Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП

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

В данной статье рассмотрим базовое применение методов вывода на печать макетов печатных форм с помощью БСП любых типовых или собственных документов.

17.02.2021    10462    quazare    20    

Перенос/копирование и установка отбора/фильтра/периода при интерактивном переключении или смене варианта отчета/СКД в БСП 3.1 (1C ERP, УТ, БП, ...)

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

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

18.01.2021    1691    SizovE    4    

Генерация штрихкодов с помощью БСП для программистов

БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия УУ Бесплатно (free)

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

09.01.2021    11416    quazare    22    

Асинхронное выполнение длительных операций

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

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

28.12.2020    2433    prog_mayskiyse    8    

Метаданные и их идентификаторы

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

Идентификаторы (GUID'ы) метаданных конфигурации. Немного о том, как их получить.

05.12.2020    14097    YPermitin    27    

Сохранение настроек

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

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

22.11.2020    4902    the1    8    

Дополнительные реквизиты формы (простой вариант взаимодействия)

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

Упрощаем взаимодействия с дополнительными реквизитами на форме с помощью фиксированного соответствия.

14.11.2020    2462    samvani    0    

Запуск почти любых процедур и функции конфигураций в асинхронном режиме - БСП - Длительные операции [Часть 2]

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

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

30.10.2020    8113    quazare    5    

Программное создание характеристик с дополнительными реквизитами в УНФ 1.6

БСП (Библиотека стандартных подсистем) v8 УНФ Бесплатно (free)

В статье опишу порядок создания объектов и вариант их заполнения.

29.10.2020    2298    malikov_pro    7    

Гарантированно рабочий пример использования длительных операций на БСП с отображением прогресса. [Часть 1]

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

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

29.10.2020    12528    quazare    36    

Простой пример разработки регулярного обмена с использованием БСП на примере ERP 2.4 и УПП 1.3

БСП (Библиотека стандартных подсистем) Перенос данных из 1C8 в 1C8 v8 1cv8.cf УПП1 КД ERP2 Россия Бесплатно (free)

Данный вариант подойдет тем, кто хочет настроить "свой" регулярный обмен с добавлением "своих" планов обмена с использованием правил обмена на КД 2.1.

27.10.2020    7875    improg    36    

Вычислить РАЗНОСТЬДАТ в рабочих днях

БСП (Библиотека стандартных подсистем) Практика программирования v8::Запросы v8::СКД ERP2 БП3.0 УТ11 ЗУП3.x Бесплатно (free)

Вычисление количества рабочих днях между двумя датами в запросе.

20.10.2020    4099    antonivan    18    

Разработка функционала обмена с несколькими внешними точками

Обмен данными и распределенная БД БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

21.09.2020    1306    Sergey1CSpb    2    

Работаем с контактной информацией в конфигурациях на БСП

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

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

14.09.2020    25304    quazare    25    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

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

30.08.2020    21664    quazare    34    

Выполнение внешней обработки по расписанию для управляемого и обычного приложения

БСП (Библиотека стандартных подсистем) Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

Использование БСП для выполнения внешних обработок в управляемом и обычном приложении

06.08.2020    15504    RPGrigorev    0    

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

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права v8 КА2 Россия УУ Бесплатно (free)

Решал задачу ограничения доступ к объектам по справочнику "Банковские счета" штатными средствами БСП. Конфигурация КА 2.2. В остальных на БСП должно работать так же. Хотел сделать инструкцию для себя на будущее, решил поделиться.

05.08.2020    4251    ER34    2    

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

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

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

05.07.2020    14774    quazare    37    

Переопределение настроек отчета на СКД. 1С: БСП

БСП (Библиотека стандартных подсистем) v8::СКД ERP2 Россия Бесплатно (free)

Изменение настроек СКД отчета без доработки модулей БСП

24.04.2020    4318    klimsrv    6    

Картинка в форме списка номенклатуры для УТ 11.4

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

В публикации приведу код, позволяющий выводить картинку номенклатуры в форме списка.

23.03.2020    2571    malikov_pro    2    

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

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

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

10.03.2020    22034    user5300    20    

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

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

Как проводятся документы при обмене по универсальному формату. Пример доработки типовых правил обмена с переносом состояния документа: проведен/не поведен/пометка удаления.

04.03.2020    6859    partizand    7    

[БСП] Внешняя печатная форма: как перед печатью выводить форму настроек

Печатные формы БСП (Библиотека стандартных подсистем) v8 КА2 Бесплатно (free)

Во внешней печатной форме перед печатью нужно выводить форму настроек. Для примера рассматриваю печатную форму "Акт сверки взаимных расчетов " .

19.12.2019    14665    John_d    9    

Реализация печати QR кодов "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)

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

Рассмотрим, как реализовать печать QR кодов с помощью механизмов БСП.

16.10.2019    8459    paulis    4