СоздатьКлючевуюОперацию (БСП)

Автор: 1С
ОбщийМодуль.ОценкаПроизводительности
БСП

Создать ключевую операцию. Создает новый элемент справочника "Ключевые операции".

// Создает новый элемент справочника "Ключевые операции".
//
// Параметры:
//  ИмяКлючевойОперации - Строка - название ключевой операции.
//	ЦелевоеВремя - Число - целевое время ключевой операции.
//	Длительная - Булево - признак фиксации удельного времени для замера ключевой операции.
//
// Возвращаемое значение:
//	СправочникСсылка.КлючевыеОперации.
//
Функция СоздатьКлючевуюОперацию(ИмяКлючевойОперации, ЦелевоеВремя = 1, Длительная = Ложь) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	НачатьТранзакцию();
	
	Попытка
		Блокировка = Новый БлокировкаДанных;
		ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации");
		ЭлементБлокировки.УстановитьЗначение("Имя", ИмяКлючевойОперации);
		Блокировка.Заблокировать();
		
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
		               |	КлючевыеОперации.Ссылка КАК Ссылка
		               |ИЗ
		               |	Справочник.КлючевыеОперации КАК КлючевыеОперации
		               |ГДЕ
		               |	КлючевыеОперации.ИмяХеш = &ИмяХеш
		               |
		               |УПОРЯДОЧИТЬ ПО
		               |	Ссылка";
		
		ХешMD5 = Новый ХешированиеДанных(ХешФункция.MD5);
		ХешMD5.Добавить(ИмяКлючевойОперации);
		ИмяХеш = ХешMD5.ХешСумма;
		ИмяХеш = СтрЗаменить(Строка(ИмяХеш), " ", "");			   
					   
		Запрос.УстановитьПараметр("ИмяХеш", ИмяХеш);
		РезультатЗапроса = Запрос.Выполнить();
		Если РезультатЗапроса.Пустой() Тогда
			Наименование = РазложитьСтрокуПоСловам(ИмяКлючевойОперации);
			
			НовыйЭлемент = Справочники.КлючевыеОперации.СоздатьЭлемент();
			НовыйЭлемент.Имя = ИмяКлючевойОперации;
			НовыйЭлемент.Наименование = Наименование;
			НовыйЭлемент.ЦелевоеВремя = ЦелевоеВремя;
			НовыйЭлемент.Длительная = Длительная;
			НовыйЭлемент.Записать();
			КлючеваяОперацияСсылка = НовыйЭлемент.Ссылка;
		Иначе
			Выборка = РезультатЗапроса.Выбрать();
			Выборка.Следующий();
			КлючеваяОперацияСсылка = Выборка.Ссылка;
		КонецЕсли;
		
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;
	
	Возврат КлючеваяОперацияСсылка;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СоздатьКлючевыеОперации (БСП)

ИзменитьКлючевыеОперации (БСП)

УстановитьКлючевуюОперациюЗамера (БСП)

ПолучитьКлючевуюОперациюПоИмени (БСП)

ЗакончитьЗамерВремени (БСП)

ЗафиксироватьДлительностьКлючевыхОпераций (БСП)

ЗамерВремени (БСП)

ЗакончитьЗамерВремениТехнологический (БСП)

УстановитьЦелевоеВремя (БСП)

TurboConf ИР адаптер 2.50