ЗаписатьОбъектВИБ (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиXDTOСервер
БСП

Записать объект. Записывает объект в информационную базу.

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

		Если КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = Неопределено
			Или КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Выполнено Тогда
			КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями;
		КонецЕсли;
		
		КодОшибки = Новый Структура;
		КодОшибки.Вставить("КраткоеПредставлениеОшибки",   СтрокаСообщенияОбОшибке);
		КодОшибки.Вставить("ПодробноеПредставлениеОшибки", СтрокаСообщенияОбОшибке);
		КодОшибки.Вставить("Уровень",                      УровеньЖурналаРегистрации.Предупреждение);
		
		ЗаписатьВПротоколВыполнения(КомпонентыОбмена, КодОшибки, , Ложь);
		
		Объект = Неопределено;
		Возврат;
	КонецЕсли;
	
	Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
		// Устанавливаем режим загрузки данных для объекта.
		ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект,, ОтправкаНазад, КомпонентыОбмена.УзелКорреспондента);
	Иначе
		ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект,, ОтправкаНазад);
	КонецЕсли;
	
	// Выполняем проверку на пометку удаления предопределенного элемента.
	СнятьПометкуУдаленияСПредопределенногоЭлемента(Объект, Тип, КомпонентыОбмена);
	
	НачатьТранзакцию();
	Попытка
		
		// Записываем объект в транзакцию.
		Объект.Записать();
		
		ЗафиксироватьТранзакцию();
		
	Исключение
		ОтменитьТранзакцию();
		
		ЗаписатьОбъект = Ложь;
		
		ЗП         = ЗаписьПротоколаОбмена(26, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		ЗП.Объект  = Объект;
		
		Если Тип <> Неопределено Тогда
			ЗП.ТипОбъекта = Тип;
		КонецЕсли;
		
		ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 26, ЗП);
		
		ВызватьИсключение КомпонентыОбмена.СтрокаСообщенияОбОшибке;
		
	КонецПопытки;
	
КонецПроцедуры

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

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

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

ЗаписатьНастройкуВерсионированияПоОбъекту (БСП)

ЗаписатьВерсиюОбъекта (БСП)

ЗаписатьОбъектВФайл (БСП)

ЗаписатьОбъектВПоток (БСП)

ЗаписатьОбъект (БСП)

ЗаписатьСтруктурныйОбъектXDTOВСтроку (БСП)

ЗаписатьСтатистикуОбъектаКонфигурации (БСП)

ЗаписатьПолученныеДанныеОбъекта (БСП)

ЗаписатьОбъектXDTOВФайл (БСП)

TurboConf ИР адаптер 1.94