Войти
Windows. Настройка. Интернет. Обслуживание. Компьютеры. Безопасность
  • Все что вы хотели знать о сканерах отпечатков, но боялись спросить
  • Пакетная обработка фотографий, изображений, картинок
  • Как сфотографировать экран телефона на андроиде
  • Как сидеть в вк, чтоб никто не догадался
  • Возникают проблемы с Batman Arkham Knight - черный экран, тормозит, фпс-лимит, где сохранения, ошибки?
  • Различные тактики ведения боя в wot
  • Создание пользовательских транзакций для ведения объектов OM. Одноразовые клиенты. Сегментация для получения повторных покупок Что такое транзакция в 1с

    Создание пользовательских транзакций для ведения объектов OM. Одноразовые клиенты. Сегментация для получения повторных покупок Что такое транзакция в 1с

    Слово «трансакция» пришло к нам лишь в конце девяностых годов. Это был период развития современной банковской системы и всеобщего компьютерного бума. Тогда в разговорной и литературной речи стало встречаться это понятие. И если с проблемами программистов обычные люди сталкиваются нечасто, с банками приходится иметь дело всем. Практически любые операции – от проверки состояния счёта до сложных внутрибанковских платёжных переводов – могут квалифицироваться, как транзакции. Это слово присутствует в банковских операциях едва ли не чаще, чем такие понятия, как «деньги» или «кредит». При этом мало кто из клиентов банка полностью понимает его суть.

    Значение слова

    Транзакции – это определённые процедуры взаимодействия каких-либо объектов за некий промежуток времени. Такие процедуры были сформированы программистами. Им присущ чёткий процедурный характер. Любая транзакция – это совокупность трёх непременных составляющих:

    • запроса;
    • выполнения;
    • отчёта.

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

    Банковские транзакции

    Что значит слово «транзакция»? Какие процессы происходят, когда она совершается? Если быть точным, транзакции – это любые банковские операции, связанные с перемещением денежных средств. Но чаще всего этот термин используется при использовании электронных счётов. Или же он напрямую указывает на операции с банковскими картами.

    Словосочетание «провести транзакции» означает операции с использованием электронного счёта. Сюда входит оплата коммунальных услуг, покупка товаров в магазине с помощью пластиковой карты, зачисление зарплат и стипендий и много других операций с деньгами.

    Виды транзакций

    В банковском деле различают операции двух видов:

    1. Онлайн-транзакции – это манипуляции с безналичными деньгами при помощи соединения с банковским центром в режиме реального времени. Самый наглядный пример – работа с терминалом.
    2. Офлайн-транзакции – это совершение банковской операции без непосредственного контакта участников. Например, зачисление зарплаты работникам. Со счёта организации списываются денежные средства, а работник лишь получает уведомление о пополнении баланса своего текущего счёта.

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

    Перевод средств

    Самый простой пример подобной операции – перевод между собственными счетами, получение или зачисление денег, внесение наличных через банкомат или терминал. Подобные операции обычно проводятся банком без комиссии. Сложнее обстоят дела с переводами между двумя разными лицами – в пределах одного финансового учреждения комиссия за перевод может достигать 3%. Если речь идёт о различных банках внутри страны – комиссия будет ещё выше. Самый дорогой перевод – в заграничные учреждения, поскольку, кроме комиссии, там часто взимается так называемая оплата за транзакцию.

    Переводы

    Переводы с одного счёта на другой иногда приводят к досадным ошибкам. Малейшая неточность в написании фамилии получателя может обернуться блокировкой манипуляции электронной системой безопасности. Решит проблему автоматическая транзакция. Это происходит, например, при зачислении средств на баланс получателя по номеру банковской карты. Так значительно понижается вероятность ошибки. В случае обнуления транзакции деньги просто возвращаются на баланс владельца. Правда, происходит это в течение десяти или пятнадцати календарных дней.

    Если у отправителя отсутствует счёт в банке, можно воспользоваться сервисом денежных переводов. Самые известные международные операторы – MoneyGram, Western Union, Anelik, Contact и другие. Главное преимущество таких операций – высокая скорость транзакции. Основной недостаток – довольно высокая комиссия.

    Что делать в случае сбоя транзакции?

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

    • В процессе осуществления транзакции произошёл сбой (зависла программа, отключилось электричество), а деньги уже ушли. Звонок на горячую линию зафиксирует ваше обращение. После процедуры проверки и устранения ошибки специалисты смогут довести операцию вручную.
    • Терминал или банкомат не выдал квитанцию об осуществлении транзакции. Причина может быть банальна – отсутствие кассовой ленты в аппарате. После обращения к оператору вам будет предложен дубликат квитанции. Обычно его присылают на указанный электронный адрес.
    • Ошибка в указанных реквизитах. Деньги ушли, но получатель их так и не увидел.
      ератор может помочь решить эту проблему: например, найти ошибку в номере счёта получателя. В этом случае деньги не доходят до клиента просто из-за правил безопасности. Такие средства не изымаются банком, а хранятся в течение 10 дней на особом временном счёте. Если отправитель вовремя обратится в финансовое учреждение, укажет время операции, сумму перевода и ответит на несколько вопросов, деньги будут разблокированы. После удержания комиссии за транзакцию сумма вернётся на баланс отправителя.

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

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

    Наиболее распространённый случай использования термина - в проведении денежных переводов и покупке товара. Это может быть:

    • Выдача наличных денежных средств в банкомате или отделении банка;
    • Приобретение определённого количества акция на бирже;
    • Расчёт по карточке в магазине.

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

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

    Тут также есть два варианта применения. Когда операция одобрена, ей приписывается «Commit», если же по какой-то причине произошёл отказ, то присваивается «Rollback». Чаще всего это происходит, когда какое-то из чисел захотели поделить на ноль или ввели сумму не соответствующую внесённой в базу данных ранее.

    Виды

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

    Далее карточка помещается в специальный терминал, где нужно лишь подтвердить последующую операцию. Для этого нужно ввести данные, определённый заранее ПИН-код. Далее пройдёт решение терминала, был ли введённый пароль верным, или же ему стоит отказать. В любом случае, информация о проведении транзакции будет записана в определённую базу данных. Происходит это благодаря передаче данных в систему оплаты, обслуживающую данную карту. И уже на данном этапе проходит полноценная проверка подлинности введённых данных. Ведь они могут, как присутствовать в платёжном листе, так и отсутствовать.

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

    Стоит отметить, что если на одном из этапов обнаруживается ошибка, несоответствие данных - то в проведении транзакции просто отказывается.

    Области применения

    В разных областях применения, используются разные обозначения слова «транзакция»:

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

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

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

    Даже области, совсем несвязанные с финансами, оперируют понятием «транзакций». В пример приводится психология. Специалисты этой сферы именуют транзакцией обмен стимулами, возникающими во время разговора двух личностей. Такое применение несколько надуманное, но имеет право на существование. Теперь вы знаете что такое транзакции.

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

    2017-08-12

    Создание пользовательских транзакций для ведения объектов OM.

    Вступление

    Думаю, что многие функциональные SAP консультанты сталкивались с транзакцией ведения объектов организационного менеджмента. А именно, транзакцией PP01

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

    Таблица T77S0, группа "TCODE"

    При настройке объектов объектов OM, вы, наверняка, коснетесь настройки, находящейся по следующему пути в SPRO :

    IMG: Personnel Management -> Organizational Management -> Basic Settings -> Data Model Enhancement -> Maintain Object Types

    Здесь вы создаете новые OM объекты, придумываете им имена, выбираете иконочки и определяете какие-то настройки для них... В настоящий момент нас интересует узел "Object Type Key + Transaction "

    Перед вами откроется часть настроечного ракурса T77S0 с отфильтрованными значениями групп

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

    В чем особенность этих транзакций?

    Используя транзакции, которые предназначены для ведение определенного типа объекта, у вас отпадает необходимость выборки этих самых типов объектов, которые доступны, по умолчанию, в транзакции PP01 . То есть, запустив, к примеру, транзакцию PO09, вы сразу начинаете работать с объектами типа L

    Создание новой транзакции для собственного объекта организационного менеджмента

    В одной из своих прошлых заметок я рассказывал о том, как можно создать новый объект OM + добавить для него структурный поиск

    Не буду далеко уходить от этого материала. В качестве демонстрации я создам новую транзакцию для ведения объекта 91.

    Определение нового типа объекта в T77S0

    Определите наименование будущей транзакции в настроечном ракурсе T77S0

    Значение "ZP91M" в данном случае является наименованием будущей транзакции для ведения объекта 91 . Сохраните внесенные изменения.

    Создание новой транзакции для ведения OM объекта

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

    Обратите внимание на значения, которые были использованы для полей Program , Screen Number ,Authorization Object . Теперь выполните запуск новой транзакции

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

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

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

    Ну что ж, у вас получилось сконвертировать клиента. Это круто, а что дальше? По данным статистики от 30% до 80% покупателей в ecommerce индустрии совершают заказ лишь раз за весь свой жизненный цикл. В сфере игр второй заказ совершает 60% клиентов. Как нам получить постоянных клиентов при столь неутешительных численных данных?

    Этот вопрос волнует маркетологов по всему миру. Они трудятся, прилагая все свои усилия на перевод клиентов из одноразовых в постоянных. Будь то первичные заказы в ритейле или депозиты в онлайн-играх. Почему второй заказ столь важен? Если клиент совершает свой второй заказ или вносит второй депозит, вероятность совершения третьего заказа возрастает в десятки раз по сравнению с клиентами, совершившими только один заказ.

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


    Вероятность совершения следующей транзакции в зависимости от числа текущих транзакций

    Многие компании объединяют одноразовых клиентов в одну группу и используют разные методики и посылы для стимулирования второй покупки. Звучит как неплохой план, не так ли? Так или иначе, все клиенты в группе - одноразовые покупатели. Но мы собрались здесь для обсуждения иного подхода. Этот второй метод заключается в разделении группы одноразовых клиентов на разные сегменты в зависимости от характеристик их первой транзакции. Нырнем глубже и рассмотрим предпосылки такой сегментации.

    День недели

    Мы начнем с анализа поведения многократных покупателей 10 лидирующих компаний и попробуем понять, есть ли взаимосвязь между днем первого заказа и днем второго заказа. Начнем с анализа ставок на спорт. В этой тематике клиент вносит депозит в день, когда происходит наибольшее число матчей его любимой команды, обычно в субботу или воскресенье. Вероятность таких клиентов вернуться и внести ставки в эти дни достаточна высока.

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


    Вероятность совершения транзакции второй транзакции в зависимости от дня недели первой транзакции в ставках на спорт

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


    Вероятность совершения транзакции второй транзакции в зависимости от дня недели первой транзакции в ритейле

    Мы можем увидеть аналогичную ситуацию. Покупатели совершают вторую покупку в тот же день недели, что и первую. Важно отметить, что дисперсия в сфере ритейла была выше, чем в сфере ставок на спорт. Но сама зависимость проявлялась для каждой компании. Самый популярный день для покупок - понедельник, самый непопулярный - воскресенье. Если рассмотреть зависимости между заказами только для одного бренда, получим вот что.


    Вероятность совершения транзакции второй транзакции в зависимости от дня недели первой транзакции в ритейле для одного бренда

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

    Время суток

    Как вы могли догадаться, мы протестировали аналогичные гипотезы для времени суток. Есть ли корреляция между временем суток первого заказа и второго, если второй заказ совершили как минимум через семь дней позже? Мы поделили день на 4 периода: ночь, утро, вечер и полдень - и проверили распределение вторых заказов для каждого временного периода для 6 брендов.


    Вероятность второго заказа в зависимости от времени суток первого заказа

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

    Стоимость товаров в заказе

    Как маркетологи, мы стремимся увеличить число товаров в заказе. Допродажи в мире маркетинга - способ жизни, а если нет - то следовало бы. Но должны ли мы всегда пытаться допродать товар? Является ли такое решение лучшим для всех наших клиентов? В проведенном анализе мы исследовали, увеличивается ли стоимость товаров во втором заказе по сравнению с первым.

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


    Вероятность стоимости второго заказа в зависимости от стоимости первого заказа

    Большинство клиентов, чьи заказы были совершены в низком ценовом диапазоне, остались в том же диапазоне и во втором заказе.

    Заключение

    Наш анализ выше показывает, что мы можем почерпнуть из первых заказов. Главное, что нам нужно запомнить, что не следует помещать всех одноразовых клиентов в одну группу. Стоит сегментировать клиентов в зависимости от их дня недели и времени покупки, стоимости заказа.
    Использование этих методов и шагов поможет вам лучше понять, как увеличить LTV и получить больше лояльных клиентов.

    В рамках подготовки к сертификации 1С «Эксперт» в преддверии двух очень важных и глобальных тем — блокировок и хотелось бы разобрать то, без чего невозможны вышеназванные понятия, — транзакция СУБД.

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

    Типичный пример транзакции — перевод денежных средств с одного счета на другой:

    1. начать транзакцию;
    2. прочесть количество денежных средств на счету номер 123;
    3. уменьшить баланс счета 123 на 100 рублей;
    4. сохранить баланс счёта номер 123;
    5. прочесть количество денежных средств на счету номер 321;
    6. увеличить баланс на 100 рублей;
    7. записать новое количество денежных средств на счете 321;
    8. зафиксировать транзакцию.

    Получите 267 видеоуроков по 1С бесплатно:

    Как мы видим, если транзакция выполнена не полностью, то она не имеет смысла.

    Ключевые требования (ACID) к транзакционной СУБД

    Одним из наиболее распространённых наборов требований к транзакциям и транзакционным СУБД является набор ACID (Atomicity, Consistency, Isolation, Durability). Это те свойства, которыми должна обладать любая транзакция:

    • Атомарность (Atomicity) — никакая транзакция не должна быть зафиксирована частично;
    • Согласованность (Consistency) — система находится в согласованном состоянии до начала транзакции и должна остаться в согласованном состоянии после завершения транзакции;
    • Изолированность (Isolation) — во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат;
    • Надежность (Durability) — в случая сбоя изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.

    Транзакции в 1С

    Транзакции в 1С 8.3 и 8.2 создаются как автоматически, так и описываются разработчиками.

    С помощью метода ТранзакцияАктивна() можно узнать, активна ли транзакция.

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

    Независимо от выбранного варианта работы (файловый или клиент-серверный) система «1С:Предприятие» обеспечивает работу с информацией, хранящейся в базе данных, с использованием механизма транзакций.

    Транзакция - это неделимая с точки зрения воздействия на базу данных последовательность операций манипулирования данными. Она выполняется по принципу «все или ничего» и переводит базу данных из одного целостного состояния в другое целостное состояние. Если по каким-либо причинам одно из действий транзакции невыполнимо или произошло какое-либо нарушение работы системы, база данных возвращается в то состояние, которое было до начала транзакции (происходит откат транзакции).

    Система «1С:Предприятие» осуществляет неявный вызов транзакций при выполнении любых действий, связанных с модификацией информации, хранящейся в базе данных. Например, все обработчики событий, расположенные в модулях объектов и наборов записей, связанные с модификацией данных базы данных, вызываются в транзакции. В транзакции выполняется также чтение объектов следующих типов: ПланОбменаОбъект, ДокументОбъект, СправочникОбъект, ПланВидовХарактеристикОбъект, ПланВидовРасчетаОбъект, ПланСчетовОбъект, БизнесПроцессОбъект, ЗадачаОбъект, ПоследовательностьНаборЗаписей, РегистрСведенийНаборЗаписей, РегистрНакопленияНаборЗаписей, РегистрБухгалтерииНаборЗаписей, РегистрРасчетаНаборЗаписей, ПерерасчетНаборЗаписей . При этом в режиме управляемых блокировок выполняется установка разделяемой блокировки по значению регистратора для наборов записей и по значениям отбора для набора записей независимого регистра сведений.

    Наряду с этим разработчик может использовать работу с транзакциями в явном виде. Для этого используются процедуры глобального контекста НачатьТранзакцию(), ЗафиксироватьТранзакцию() и ОтменитьТранзакцию().

    Использование явного вызова транзакций

    Метод НачатьТранзакцию() позволяет открыть транзакцию. После этого все изменения информации базы данных, выполняемые последующими операторами, могут быть либо целиком приняты, либо целиком отвергнуты. Для принятия всех выполненных изменений используется метод ЗафиксироватьТранзакцию() . Для того чтобы отменить все изменения, выполнявшиеся в открытой транзакции, используется метод ОтменитьТранзакцию() . Если количество вызовов метода НачатьТранзакцию() превышает количество вызовов методов ЗафиксироватьТранзакцию() или ОтменитьТранзакцию() , то система выполнит неявный вызов метода ОтменитьТранзакцию() в следующих случаях:

    ● при окончании выполнения встроенного языка (обработчик события, внешнее соединение, automation-сервер);

    ● при передаче управления с сервера на клиента.

    Если количество вызовов методов ЗафиксироватьТранзакцию() или ОтменитьТранзакцию() превышает количество вызовов метода НачатьТранзакцию() , то при выполнении лишнего вызова метода ЗафиксироватьТранзакцию() или ОтменитьТранзакцию() будет порождено исключение. Таким образом, схема работы с транзакцией в общем виде может выглядеть следующим образом:

    Попытка

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

    // Последовательность операторов

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

    Исключение

    ОтменитьТранзакцию();

    КонецПопытки;

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

    ● невосстановимые,

    ● восстановимые.

    Невосстановимые ошибки - это ошибки, при возникновении которых нормальное функционирование системы «1С:Предприятие» может быть нарушено, например, могут быть испорчены данные. При возникновении невосстановимой ошибки выполнение системы «1С:Предприятие» прекращается в любом случае. Если невосстановимая ошибка произошла в процессе выполнения транзакции, то все изменения, сделанные в рамках этой транзакции, отменяются системой.

    Восстановимые ошибки - это ошибки, не вызывающие серьезных нарушений в работе системы «1С:Предприятие». В случае возникновения восстановимой ошибки дальнейшая работа системы может быть продолжена. При этом, естественно, сама операция, вызвавшая ошибку, прекращается, и вызывается исключение, которое может быть перехвачено и обработано конструкцией

    Попытка … Исключение … КонецПопытки.

    Вложенный вызов транзакций

    В рамках уже выполняемой транзакции можно обращаться к процедурам НачатьТранзакцию(), ЗафиксироватьТранзакцию() и ОтменитьТранзакцию() . Например, может использоваться следующая схема вызовов:

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

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

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

    // Вложенный вызов транзакции

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

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

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

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

    ВНИМАНИЕ! Система «1С:Предприятие» не поддерживает вложенных транзакций. Это означает, что всегда действует только транзакция самого верхнего уровня.

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

    Влияние транзакций на работу программных объектов

    В общем случае программные объекты, используемые системой «1С:Предприятие», абсолютно «прозрачны» для транзакций базы данных. Иначе говоря, транзакции базы данных могут вызываться при выполнении различных методов программных объектов, однако, например, действия, выполняемые базой данных при откате транзакции, в общем случае никак не влияют на соответствующие программные объекты.

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

    В этом правиле есть исключения. В силу значительной прикладной специфики программных объектов системы «1С:Предприятие» в некоторых случаях откат изменений, выполненных в базе данных, все же может влиять на значения свойств соответствующих программных объектов. Это происходит в следующих случаях:

    ● при отмене транзакции признак проведения документа восстанавливает значение, которое было до начала транзакции;

    ● если объект был создан и записан в транзакции, то при откате транзакции очищается значение ссылки;

    ● если объект создавался вне транзакции и при записи его в транзакции использовался код/номер, сгенерированный автоматически, то при отмене транзакции код/номер очищается.