Блокировкаданных

Тема в разделе "1C и всё что с ней связано", создана пользователем WildAnther, 27 дек 2011.

Статус темы:
Закрыта.
  1. WildAnther

    WildAnther Гость

    Товарищи добрый день. Как можно реализовать блокировку документа от редактирования.
    Пытался ставить простые блокировки через ЭтотОбъект.Заблокировать(), блокирует от интерактивного, через обработку АРМ документ изменяется...
    Пробую через БлокировкуДанных, как то не получается опять таки от обработки заблокироваться.
    p.s. 8.1
     
  2. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    В каком смысле "заблокировать"? Заблокировать от изменения каких-то определенных реквизитов или полностью? Опишите полностью задачу.
     
  3. WildAnther

    WildAnther Гость

    Заблокировать от изменения полностью объект(документ).
    Есть документ ЗаказНаряд. Консультанты забив его сохранили, при этом держат документ и как бы должны поставить на документ блокировку чтобы никто уже не мог зайти в документ и изменить.
    Параллельно работают мехи которые работают в обработке АРМ. которая в свою очередь может вносить изменения в документ ЗаказНаряд. Вот и от этих самых мехов и надо так сказать защититься =)
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Сделай подписку на событие перед записью документа и шли там всех кто лишний нафиг.
     
  5. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Теперь цель ясна. Тогда варианта 2:

    1 - Создать РС в который попадают записи при открытии и удаляются после выхода (вариант не айс, но пару раз я выкручивался так)

    2 - только "Заблокировать()". При открытии формы или обработкой проверять заблокированность "Заблокирован()" кажется так имя функции. И если не т, то слать нах или открывать в режиме просмотра.
     
  6. WildAnther

    WildAnther Гость

    Насчет 1-го уже задумались. скорей всего по этому пути и пойдем.

    По 2-му. Заблокировать() вещь хорошая. НО Блокирует только от интерактивного редактирования, получается что обработка спокойненько изменяет данные даже если документ открыт и заблокирован... И почему то не работает управляемая блокировка через БлокировкаДанных, но она не работает скорей всего из-за того что режим блокировок автоматический=)
    так что думаю будем придерживаться первому варианту, а с блокировками мутно)

    Редактирование: Назрел тут вопросик. Возможно ли из обработки заблокировать документ методом ЭтотОбъект.Заблокировать() ?
     
  7. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Из обработки проверять надо заблокирован объект или нет. Потому как "ПолучитьОбъект()" создает новый экземпляр объекта.

    И ответ на ваш вопрос - да. Можно.
     
  8. WildAnther

    WildAnther Гость

    По сути проверить заблокирован документ или нет можно попытавшись заблокировать его верно же?
     
  9. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Можно и так. Только в попытке. Но мы же не хотим лишней напруги при компиляции? в частности "Попытка Исключение КонецПопытки" - тяжело переваривается.
     
  10. WildAnther

    WildAnther Гость

    А как по другому можно?
     
  11. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Никак. Или регистром или попыткой. Если можно как-то иначе, то я не знаю. :rolleyes:
     
  12. WildAnther

    WildAnther Гость

    Ну да. Именно так я и думал. Пока что решаю попыткой блокировки.
    Дабы темы не плодить спрошу пожалуй тут.
    Имеется два регистра. Есть обработка которой перетаскиваю данные из одно в другой (запросом). Как корректней организовать хранение последней считанной записи с первого регистра, чтобы можно было дополнить второй регистр при пополнении первого. Как то так.)
    Заранее спасибо.
     
  13. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    А смысл таких манипуляций? Почему не добавлять записи во второй регистр, когда записи попадают в первый? или я чего-то не понял?
     
  14. WildAnther

    WildAnther Гость

    Уходим от одного старого регистра, пока полностью не перевели хотим такую сделать хитрую тему... Хотя может добавить в первый регистр чтобы при записи писалось и в второй регистр... во общем то идея....)
     
  15. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Это не идея, это решение проблемы :facepalm:. А при необходимости переноса старых данных, можно выполнить запрос с ограничеим по периоду до даты официального запуска регистра и перенести все 1 раз
     
Статус темы:
Закрыта.

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