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

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

  1. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    1С:Предприятие 8.3 (8.3.6.2152) режим управляемых форм.
    День добрый, суть задачи следующая:
    Есть справочник, ссылку на объект которого планирую выбирать запросом и предоставлять пользователю для редактирования. Для того, что бы разные пользователи не получили для редактирования один и тот же объект справочника, необходимо что то предпринять. Верно ли я понял, что для этого можно использовать блокировку? Если да, то как грамотно это сделать?
  2. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Для начала почитать что нибудь про объектные писсеместические и оптимистические блокировки и про объектные и транзакционные блокировки.
  3. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Спасибо за совет. Я уже поверхностно изучил этот вопрос. Насколько я понял, мне потребуется использовать объектную пессимистическую блокировку.
    Код:
    Попытка
    Заблокировать();
         //тут выполняю действия с объектом, если удалось его заблокировать
    Исключение
         Сообщить("Документ заблокирован !!!");
         Отказ=Истина;
    Конецпопытки
    Вопрос верно ли я всё понял?
  4. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Нет скорее всего не верно... блокировать дополнительно объект не нужно. Он вроде как заблокируется автоматически самой платформой. Ты попробуй на двух сеансах один и тот же документ открыть и что то в нём изменить.
  5. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Всё же пошёл путём добавления ещё одного логического поля в справочник.
  6. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Какого логического поля?
  7. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Добавил реквизит в справочнике "В работе". Если ссылка на элемент справочника выбрана запросом для работы - ставлю флаг, при завершении и отмене соответственно снимаю флаг. Мне показалось так удобней в моём случае.
    Пользуясь случаем хочу спросить, а в запросе как то можно вычислить, заблокирован элемент справочника или нет?
  8. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
  9. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Ой. тут у вас не блокировки, а разделение элементов справочника по пользователям на уровне записей (RLS).
  10. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Область для меня пока неизведанная, но, думаю, будет полезна. Однако это всё же не то. С блокировками же - перечитываю, но не могу понять, чем они лучше, того, что я намудрил.
  11. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    При чём тут вообще RLS?
    --- Объединение сообщений, 23 май 2016 ---
    Тем что они уже есть!!!! Сразу на уровне платформы. И мудрить ничего не нужно.
  12. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Прочитай самое первое сообщение:
    "Для того, что бы разные пользователи не получили для редактирования один и тот же объект справочника, необходимо что то предпринять".
  13. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Прочитай что такое RLS ;)
  14. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    даже если они его получат - они не смогут его отредактировать - на уровне платформы не даст. Вот о чем Боря пишет. что не надо городить ничего.
  15. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Как нибудь прочитаю, когда их писать надоест! =)
    Прочитай про блокировки - расскажешь когда мудрить.
    Мне тут вообще советовали "Правду" почитать или "Советский спорт".
    --- Объединение сообщений, 24 май 2016 ---
    Задача стоит : Разные пользователи редактируют разные объекты.
    Читаем первое сообщение:
    Для того, что бы разные пользователи не получили для редактирования один и тот же объект справочника, необходимо что то предпринять.
    Т.е им не только объект нельзя давать (а ссылку на него тоже)

    А если просто "ничего не мудрить" будет как минимум ошибка про блокировки и некоторых пользователей заведет в ступор и у них появятся вопросы.
  16. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    НУ так тут RLS каким боком при запросе в РЛС как вы проверите занят объект или нет. RLS для этого вообще не подойдет.
    Тогда пусть использцует объектные блокировки получает запросом данные и блокирует их.
    --- Объединение сообщений, 24 май 2016 ---
    А вообще если запрос то правильно тогда писать в запросе ДЛЯ ИЗМЕНЕНИЯ тогда блокируются объекты выбранные запросом и выдумывать ничего не надо
  17. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Вот когда автор уточнит по каким условиям он будет разделять кому давать редактировать а кому нет - тогда и ясно будет
    Есть хоть одно слово "Занят" в первом сообщении?
    Равно как и условия по которому наделять или лишать Иванова или Петрова доступа к контрагенту А или контрагенту Б.
  18. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Только там ньюансы есть, что что бы работало долждно в транзакции выполняться иначе будет игнорировться т.к система не знает когда отпустить
    --- Объединение сообщений, 24 май 2016 ---
    Ну автор в самом начале и уточнил, что как тллько запросом объект захватывается и выбирается - други пользователям его не давать. Что тут уточнять то?
    Тут надо делать в тразакции и ДЛЯ ИЗМЕНЕНИЯ
    А RLS вообще не причем т.к при РЛС отрабатывает запрос которые берет уже ЗАПИСАННЫЕ ДАННЫЕ ИЗ базы а теперь представьте что человек берет 500 сотрудников и начинает их обрабатывать в тразакции пока транзакция идет данные не записаны и по сути элемент какой он был в справочнике такой же и остался. и когда будет другой пользователь в это же время выбирать данные на что смотреть РЛС то? все данные то такие же как и у первого пользователя просто тот на секунду раньще успел.
    Последнее редактирование: 24 май 2016
  19. TODD22
    Online

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Здесь есть где то условие на доступность объектов?
    Речь идёт о запрете редактирования объекта одновременно двумя пользователями. Что решается блокировками платформы. При чём тут RLS вообще?
    --- Объединение сообщений, 24 май 2016 ---
    Где ты прочитал про "разные объекты"? Если автор пишет:
  20. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Что-то предпринимать нужно в том случае, если один и тот же объект может быть отредактирован не из основной формы этого объекта.
    Если редактирование объекта выполняется через основную форму, то система сама блокирует объект при открытии формы, о чем было замечено TODD22.
Похожие темы
  1. Persempre
    Ответов:
    1
    Просмотров:
    235
Загрузка...

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