Код для переноса данных

//Перед загрузкой данных
ТаблицаДокументов = Новый ТаблицаЗначений;
ТаблицаДокументов.Колонки.Добавить("Ссылка");
ТаблицаДокументов.Колонки.Добавить("Действие");
Параметры.Вставить("ТаблицаДокументов",ТаблицаДокументов);

//После загрузки объекта
Если ИмяТипаОбъекта = "Документ"
    И Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда

    Если Не ОбъектНайден  Тогда
        Объект.Записать();
        ОбъектМодифицирован = Ложь;
    КонецЕсли;

    НоваяСтрока =  Параметры.ТаблицаДокументов.Добавить();
    НоваяСтрока.Ссылка = Объект.Ссылка;

  Если Объект.Проведен  Тогда
      НоваяСтрока.Действие = "Проведение";
  ИначеЕсли Объект.ПометкаУдаления Тогда
      НоваяСтрока.Действие = "Удаление";
  Иначе
      НоваяСтрока.Действие = "Отмена";
  КонецЕсли;
  //Если ПараметрыОбъекта.Получить("Проведен") Тогда
  //      НоваяСтрока.Действие = "Проведение";
  //  ИначеЕсли ПараметрыОбъекта.Получить("ПометкаУдаления")  Тогда
  //      НоваяСтрока.Действие = "Удаление";
  //  Иначе
  //      НоваяСтрока.Действие = "Отмена";
  //КонецЕсли;
КонецЕсли;

После загрузки данных
ТекстСообщенияЗаписи = "";
ТекстСообщенияОшибки = "";

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

Если Не ПустаяСтрока(ТекстСообщенияЗаписи) Тогда
  Сообщить(ТекстСообщенияЗаписи);
КонецЕсли;

Если Не ПустаяСтрока(ТекстСообщенияОшибки) Тогда
  Сообщить("Ошибки при отмене проведения: "+ Символы.ПС + ТекстСообщенияОшибки);
КонецЕсли;
Параметры.Удалить("ТаблицаДокументов");
1
{13} Переменной ОбъектМодифицирован присвоено значение, но оно нигде не используется

Комментарии

Эльдар Мингалиев
#1, 08 октября 2020 14:25

Что это? Для какого переноса? как это использовать?


См. также

Не переносите код таким образом

Добавление данных по регистру в документ "Перенос данных" в ЗУП

ПеренестиЗащищаемыеОбластиПерсональныхДанных (БСП)

ЗаполнитьДанныеРегистраВерсииКлассификаторовОбластейДанных (БСП)

ПеренестиКэшДанныхКлассификаторов (БСП)

КодВозвратаОшибкаДанных (БСП)

ДанныеQRКода (БСП)

КодВозвратаНеНайдено (БСП)

Модератору