8.х Недоступный реквизит на всех формах документов

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

  1. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    Приветствую форумчане
    Суть задачи:Есть реквизит Ответственный,надо сделать его видимым,но недоступным для редактирования пользователями.
    Код:
    Элементы.ТвойЭлемент.Доступность = Ложь
    
    Но сделать надо не для одного документа,а для всех где используется такой реквизит
    Как можно это реализовать?
    Можно запихнуть это в общий модуль?
    УСО 8.2 Формы обычные
  2. nbIpKuH_BaH9I
    Online

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.986
    Симпатии:
    398
    Баллы:
    104
    Через метаданные попробуйте.
  3. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.642
    Симпатии:
    948
    Баллы:
    204
    Вообще это делается через права, а именно через RLS, т.е на этот реквизит запись не дана
    --- Объединение сообщений, 1 июн 2015 ---
    Если на форме недоступно - не значит что я его обработкой или еще чем то не смогу изменить
    --- Объединение сообщений, 1 июн 2015 ---
    Уже когда обсуждали на форуме такое - поищите.
    Тут просто вопрос стоит что при создании новых документов реквизит записывается, а потом уже нет
    nbIpKuH_BaH9I нравится это.
  4. nbIpKuH_BaH9I
    Online

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.986
    Симпатии:
    398
    Баллы:
    104
    Да, что то я слишком узколобый сегодня :). Конечно же через RLS самый правильный вариант.
  5. Draco
    Online

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

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

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    Как этот реализовать? Впервые с этим встречаюсь)
    --- Объединение сообщений, 1 июн 2015 ---
    Так там много же прав,для каждой прописывать что ли?
  7. nbIpKuH_BaH9I
    Online

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.986
    Симпатии:
    398
    Баллы:
    104
    Ну первое что пришло в голову. Создаете новую роль. RLS - это ограничение прав на уровне записей. В двух словах не объяснишь. НУжно сидеть и разбираться с ним.
    --- Объединение сообщений, 1 июн 2015 ---
    В инете масса примеров.
  8. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.642
    Симпатии:
    948
    Баллы:
    204
    В инете и на форуме были и есть примеры, посмотрите в типовой как.
    Зачем для каждой роли?
    У Вас УСО. там ну и во всех типовых решениях 1С, у каждого пользователя по умолчанию присваивается роль "Пользователь" вот в ней и прописываете
    В типовой посмотрите. П физ лицам по контрагентам и т.д там прописано
  9. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    При формировании формы,всегда же вызываются различные общие модули,вот в такой модуль и можно поместить
    Код:
    Элементы.ТвойЭлемент.Доступность = Ложь
    
    Какие всегда вызываются?
  10. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.642
    Симпатии:
    948
    Баллы:
    204
    ну я же вам сказал что конечно же можно и таким способом,
    но вы уверены что не найдется какой нить умник у котрого будет простая обработка
    с кодом
    Код:
    ТекОб=СсылкаНаДокумент.ПолучитьОбъект();
    ТекОб.ответвенный=Справочник.Пользователи.НайтиПоКоду("");
    ТекОб.Записать();
    ну и к тому же Вам придется мормы всех обхектв таких запортить для последующих обновлений
  11. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.775
    Симпатии:
    509
    Баллы:
    204
    Руслан, если не хотите гемора - делайте черел РЛС
  12. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    Можете описать как это сделать подробно ,я только начинаю свой путь,и опыта работы с ролями особо не имею
    В моем конкретно примере надо у всех документов у которых есть реквизит Ответственный сделать его на форме видимым ,но недоступным
    --- Объединение сообщений, 1 июн 2015 ---
    в плане куда зайти и тд
  13. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.775
    Симпатии:
    509
    Баллы:
    204
    По работе с РЛС много вопросов, воспользуйтесь поиском.
    Я так подозреваю, РЛС вам не подойдет, т.к. вам нужно скрывать доступность, а не видимость. РЛС подразумевает под собой - чтение и запись.
  14. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    Все твердят что так нужно делать(
    Вы как знающий и опытный человек можете подсказать как мне реализовать эту задачу?
  15. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.642
    Симпатии:
    948
    Баллы:
    204
    Да весь вопрос заключается не в том что "сделать его на форме видимым ,но недоступным", а зачем это делать?
    Скорее всего это надо что бы пользователь не смог перевыбрать вместо себя другого пользователя.
    Я Вас сказал что при такой уже постановке задаче изменить пользователя можно и программно.
    Просто то чт вы хотите для каждой формы сделать - представьте это у вас практический каждый объект конфигурации в документах будет изменен.
  16. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.775
    Симпатии:
    509
    Баллы:
    204
    При открытии формы меняйте доступность при наличии определенных прав. Либо в свойствах элемента выставляйте
  17. TopicStarter Overlay
    RuslanKhanow
    Offline

    RuslanKhanow Опытный в 1С

    Регистрация:
    18 фев 2015
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    Задача поставлена,хозяин барин ,как говорится
  18. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.642
    Симпатии:
    948
    Баллы:
    204
    Ну как хотите.
    Вот как раз таких программистов и не любят те кто после них переделывают потом все.
    Сказали копать от сюда и до обеда и копаете, а зачем никто не узнает, сказали же копать.
    Если бы были управляемые формы Я бы тогда уже посмотрел ччерез подписку на событие событие ОбработкаПолученияФормы
    А так... дело за вами
    nbIpKuH_BaH9I и alexburn нравится это.
  19. nbIpKuH_BaH9I
    Online

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.986
    Симпатии:
    398
    Баллы:
    104
    Подытожим. Для реализации Вашей задачи есть несколько путей.
    1) Если Вам реально необходимо скрыть доступность реквизита:
    а) Для обычных форм. Только дорабатывать все формы.
    б) Для управляемых форм. Использовать подписку на событие ОбработкаПолученияФормы.
    2) Если необходимо ограничить чтение/запись этого реквизита, то воспользоваться механизмом RLS.
  20. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.642
    Симпатии:
    948
    Баллы:
    204
    Ну там и для обычных форм можно выпендриться - можно каждому такому объекту добавить управляемую форму и сразу закрывать ее.
    Это даже лучше будет чем модуль каждой формы добавлять т.к объект внешний добавленный при обновлении проще будет

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