Транзакції в 1с 8

В рамках підготовки до сертифікації 1С «Експерт» напередодні двох дуже важливих і глобальних тем - блокувань і взаімоблокіровок хотілося б розібрати те, без чого неможливі вищеназвані поняття, - транзакція СУБД.

Транзакції в 1с 8

Що таке транзакція

Транзакція - логічно пов'язана, неподільна послідовність дій. Транзакція може бути або виконана цілком, або взагалі не виконана. Для фіксації транзакції в СУБД використовується метод COMMIT.

Типовий приклад транзакції - переказ грошових коштів з одного рахунку на інший:

Як ми бачимо, якщо транзакція виконана в повному обсязі, то вона не має сенсу.

Ключові вимоги (ACID) до транзакционной СУБД

Одним з найбільш поширених наборів вимог до транзакцій і транзакційних СУБД є набір ACID (Atomicity, Consistency, Isolation, Durability). Це ті властивості, якими повинна володіти будь-яка транзакція:

  • Атомарність (Atomicity) - ніяка транзакція не повинна бути зафіксована частково;
  • Узгодженість (Consistency) - система знаходиться в узгодженому стані до початку транзакції і повинна залишитися в узгодженому стані після завершення транзакції;
  • Ізольованість (Isolation) - під час виконання транзакції паралельні транзакції не повинні впливати на її результат;
  • Надійність (Durability) - в випадку збою зміни, зроблені успішно завершеною транзакцією, повинні залишитися збереженими після повернення системи в роботу.

Транзакції в 1С

Транзакції в 1С 8.3 та 8.2 створюються як автоматично, так і описуються розробниками.

За допомогою методу ТранзакціяАктівна () можна дізнатися, активна чи транзакція.

Приклад автоматичної транзакції - обробка проведення документа, запис елемента довідника в базу даних, запис набору записів регістра відомостей і т.д.

Розробник може і сам створити транзакцію. Для виконання дій в транзакції необхідно в код активувати її:

Після закінчення транзакції її необхідно зафіксувати:

Якщо Ви хочете скасувати дії транзакції, необхідно виконати метод:

1С не підтримує вкладених транзакцій. Тому, якщо Ви кілька разів відкриваєте транзакцію, вона «зливається» в одну. Якщо ж Ви фіксуєте або відкидаєте її, то ця дія проводиться з усіма транзакціями, що активуються раніше.

Схожі статті