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