Создать ключевую операцию. Создает новый элемент справочника "Ключевые операции".
// Создает новый элемент справочника "Ключевые операции".
//
// Параметры:
// ИмяКлючевойОперации - Строка - название ключевой операции.
// ЦелевоеВремя - Число - целевое время ключевой операции.
// Длительная - Булево - признак фиксации удельного времени для замера ключевой операции.
//
// Возвращаемое значение:
// СправочникСсылка.КлючевыеОперации.
//
Функция СоздатьКлючевуюОперацию(ИмяКлючевойОперации, ЦелевоеВремя = 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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ИзменитьКлючевыеОперации (БСП)
УстановитьКлючевуюОперациюЗамера (БСП)
ПолучитьКлючевуюОперациюПоИмени (БСП)
ЗафиксироватьДлительностьКлючевыхОпераций (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)