7.7 Работа с транзакциями

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем XXL, 20 окт 2008.

  1. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Объясните мне, пожалуйста, зачем нужны транзакции, для чего они используются, в каких случаях, как правильно этим пользоваться. Читаю-читаю, и никак не пойму :unsure:
  2. Snake-84
    Offline

    Snake-84 Опытный в 1С

    Регистрация:
    28 янв 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Транзакция используется обычно для ускорения работы кода, т.к. не записывается каждый измененный объект отдельно, а все пишется одним блоком функцией "ЗафиксироватьТранзакцию()". Скорость обычно отличается в разы!!! Так же иногда бывает необходимо отменить все изменения (например обнаружили критический незаполненный реквизит). Тогда функция "ОтменитьТранзакцию()" откатывает все изменения, внесенные в базу, после "НачатьТранзакцию()". Понятно объяснил?
  3. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Только в момент открытия транзакции никто не может пользоваться базой. Это как монопольный режим (кстати в монопольном режиме от транзакций толку нет).
  4. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Snake-84, да, спасибо:) все поняла:)
  5. gmw
    Offline

    gmw

    Регистрация:
    21 окт 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Не совсем верно. Назначение транзакции не повышении скорости, а в том, чтобы добиться синхронного изменения данных в базе по принципу "все-или-ничего". После момента начала транзакции все изменения в базе становятся обратимыми: если прервать транзакцию до ее записи, эти изменения не будут записаны, база данных вернется к моменту начала транзакции. Например, после начала транзакции введены и проведены несколько документов, добавлены записи в справочники товаров, покупателей, цен и т.д.
    Если такую транзакцию прервать, не записывать, то все эти документы и записи исчезнут.
  6. Мастер_миража
    Offline

    Мастер_миража Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    а еще каждая операция выполняемая с базой данных(добавление, удаление и т.д.) представляет собой небольшую транзакцию...
    так что транзакции в коде везде и всюду

    поетому ты не можешь не знать как ими пользоваться :unsure:

Поделиться этой страницей