Использование транзакций при организации обмена в 1С Предприятии

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Второй параметр метода указывает количество элементов, записываемых в одной транзакции. Значение 0 указывает на то, что запись всех измененных данных производится в одной транзакции.

 

Такой подход (когда вся выгрузка или загрузка осуществляется в одной транзакции) обладает как определенными преимуществами, так и определенными недостатками.

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

 

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

 

Кроме этого, необходимо учитывать объем изменений, выполняемых в о той транзакции. Например, в файловом варианте все изменения, произведенные транзакцией, накапливаются в оперативной памяти, что при записи больших объемов данных может привести к исчерпыванию свободной памяти.

 

В клиент-серверном варианте такой опасности нет, но все-таки записывать большие объемы данных в одной транзакции не рекомендуется (из-за проблем параллельности блокировки тоже требуют ресурса сервера баз данных и т.п.).

 

При обмене большими порциями данных имеет смысл использовать несколько транзакций при загрузке или выгрузке данных.

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

 

Пример использования нескольких транзакций при выгрузке данных:

В случаях использования механизма распределенных информационных баз количество объектов указывается вторым параметром метода ЗаписатьИзменения ():

ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения,1000); 

Следует отметить, что зачастую в каждом конкретном случае необходимо искать компромисс между скоростью и параллельностью работы пользователей.

dle

Помоги проекту! Расскажи друзьям о сайте: