1С УТ 11. Обмен данными в несколько транзакций.

1. egor123456 05.02.18 10:27 Сейчас в теме
Здравствуйте.

Есть ли возможность в УТ 11 произвести выгрузку/загрузку данных при синхронизации в несколько транзакций?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SerGeoSik 2 15.02.19 00:40 Сейчас в теме
Почему не воспользоваться решением предлагаемым на ИТС?:
ПРИМЕР
При обмене большими порциями данных имеет смысл использовать несколько транзакций при загрузке или выгрузке данных.

Например, в алгоритме загрузки данных можно использовать следующий фрагмент кода, позволяющий разбивать процесс загрузки на несколько транзакций по 1000 элементов данных (в данном случае величина 1000 – условная):

ЧтениеXML = Новый ЧтениеXML; 
ЧтениеXML.ОткрытьФайл(ИмяФайла); 

ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); 
ЧтениеСообщения.НачатьЧтение(ЧтениеXML); 

НачатьТранзакцию(); 

Счетчик = 0; 
Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл 
   
   Данные = ПрочитатьXML(ЧтениеXML); 
   Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
   Данные.ОбменДанными.Загрузка = Истина; 
   Данные.Записать(); 
   
   Счетчик = Счетчик + 1;
   Если Счетчик % 1000 = 0 Тогда 
      ЗафиксироватьТранзакцию(); 
      НачатьТранзакцию(); 
   КонецЕсли; 

КонецЦикла; 

ЗафиксироватьТранзакцию(); 

ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
Показать

Преимущества такого подхода заключаются в том, что, варьируя количество элементов, обрабатываемых в одной транзакции, можно добиться приемлемого компромисса между целостностью данных и параллельностью работы пользователей.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот