Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Кто-нибудь использует какие-то простейшие транзакции на инфоблоках?

00 голосов
5
Хотелось бы найти простой механизм для работы c ИБ в этом ключе. Куда глядеть?
спросил 10 Дек, 13 от Snaper (580 баллов)

5 Ответы

00 голосов
В модуле документооборота есть нужный функционал, но он не документирован.
CIBlockElement::WF_Lock, CIBlockElement::WF_UnLock, поле LOCK_STATUS в полях элемента.
ответил 13 Фев, 14 от Ly (4,580 баллов)
00 голосов
Спасибо, Дмитрий. Немного не то (если я не ошибся с использованием этих методов).
Мне бы решить такую задачу: два клиента одновременно наращивают счетчик ИБ по 100 раз. И вместо ожидаемых 200 получаем, например, 49. Скорее всего, это нужно решать средствами mysql. Хотя, наверное, еще модуль sale нужно глянуть.
ответил 03 Июнь, 14 от Snaper (580 баллов)
00 голосов
Что такое "счётчик ИБ"?

Если вам нужно хранить какое-то увеличивающееся число у *элемента* инфоблока, то для этого есть поле SHOW_COUNTER и метод CIBlockElement::CounterInc().
ответил 01 Окт, 14 от Ly (4,580 баллов)
00 голосов
Цитата
Dmitry Ban пишет:
метод CIBlockElement::CounterInc()

Не подойдет. Он увеличивает только на одну единицу в рамках одной сессии.
ответил 03 Фев, 15 от xDROx (300 баллов)
00 голосов
А, точно, он на сессию завязан.
Ну, беда-то небольшая:
Код
CIBlockElement::CounterInc($ID);
if (is_array($_SESSION['IBLOCK_COUNTER']))
    if ($key = array_search($ID, $_SESSION['IBLOCK_COUNTER']))
        unset($_SESSION['IBLOCK_COUNTER'][$key]);
ответил 16 Май, 15 от Ly (4,580 баллов)

Похожие вопросы

0 голосов
5 ответов
0 голосов
7 ответов
спросил 15 Март, 13 от hjhg (120 баллов)
0 голосов
8 ответов
0 голосов
9 ответов
0 голосов
2 ответов
спросил 26 Июль, 13 от LoTaR (160 баллов)