8.х Блокировка объекта

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Leprecus, 12 май 2016.

  1. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Ну просто вопрос в том что пользователь может данные и другим запросом получать ито же обрабатывать и понятно что в процессе обработки то же ему может вывалить что объект заблокирован.
    По этому используют ДЛЯ ИЗМЕНЕНИЯ, что бы второй пользователь когда получал данные я там не помню либо запрос ждет пока те данные освоболдятся либо получает те которые может и в итоге у пользователя второго есть доступ только к тем что могут редактироваться в данный момент
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.573
    Симпатии:
    717
    Баллы:
    204
    Для ИЗМЕНЕНИЯ это тогда нужно в транзакцию все завернуть, чтобы данные получались и изменялись в одной транзакции.
    В режиме управляемых блокировок оно игнорируется.
  3. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Так есть же вроде способ проверить заблокирован объект или нет?
    Сделать проверку заблокирован или нет объект.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.573
    Симпатии:
    717
    Баллы:
    204
    Можно и проверить.
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    НУ про Транзакцию я писал иначе же систем ане понимает когда отпускать. Ну можно и проверь заблокирован или нет. Ну сначала ты запросом получишь все а потом еще по этому всем пробежишся и провешь, а так ты сразу запросмо получил что тебе надо
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.573
    Симпатии:
    717
    Баллы:
    204
    Смешались в кучу кони, люди.......:)

    Транзакционная блокировка тебе не скажет какие объекты заблокированы, а какие - нет, она тупо либо дождется разблокирования нужных ей объектов, либо отвалится по тайм-ауту ожидания предоставления блокировки данных, которая по умолчанию равна 20 секундам в настройках БД 1C, и 25 секундам в настройках MSSQL сервера.

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

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Не надо делать транзакционную блокировку, не надо использовать RLS

    В случае необходимости запретить редактирование другим пользователям - у объекта справочника, документа и т.п. есть прекрасный метод Заблокировать(), а также Заблокирован() для того, чтобы проверить.
    --- Объединение сообщений, 24 май 2016 ---
    если же делать транзакционную блокировку - все, что получится - взаимная блокировка на серверных базах с огромной вероятностью и однопользовательское редактирование на файловой (таблица заблокируется полностью)
    --- Объединение сообщений, 24 май 2016 ---
    если же используются управляемые формы и тонкий клиент, то есть процедуры
    ЗаблокироватьДанныеДляРедактирования и РазблокироватьДанныеДляРедактирования
    Последнее редактирование: 24 май 2016
Похожие темы
  1. Persempre
    Ответов:
    1
    Просмотров:
    235
Загрузка...

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