С ограничением доступа к документу

1. user1809279 18.09.24 14:35 Сейчас в теме
Здравствуйте. Такой вопрос, сделала в расширении форму для счета на оплату, добавила дополнительный реквизит. Задача состоит в том, чтоб ограничить доступ к документу, если реквизит счет закрыт равен истине. На форме все сделала, добавила, код тоже написала, но почему то не работает, в чем может быть ошибка?

&НаСервере
Функция ЕстьПраво()

Если НЕ РольДоступна("ДоступМенеджер") Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;

КонецФункции

&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)

Если ЭтотОбъект.Элементы.СчетЗакрыт = Истина Тогда

ЭтаФорма.Доступность = ЕстьПраво();

КонецЕсли;

ЭтотОбъект.Элементы.СчетЗакрыт.Доступность = ЕстьПраво();

КонецПроцедуры

Когда документ открываешь с ограниченными правами, где стоит галочка(Истина), форма все равно доступна
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 76 18.09.24 14:40 Сейчас в теме
(1)
ЭтаФорма.Доступность

Либо используйте механизм RLS, либо в ПриОткрытии устанавливайте флаг Отказ в Истина
4. user1809279 18.09.24 14:43 Сейчас в теме
(3) Можете подсказать как это "Установить флаг отказ в истина"?
5. nomad_irk 76 18.09.24 14:45 Сейчас в теме
(4)
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)

        Если Объект.СчетЗакрыт Тогда
          
                 Отказ = НЕ ЕстьПраво();
         
        КонецЕсли;

КонецПроцедуры
Показать
6. user1809279 18.09.24 14:55 Сейчас в теме
(5) ошибка
Запрещено изменение параметра, отменяющего действие (параметр номер 1 в процедуре )
7. nomad_irk 76 18.09.24 16:25 Сейчас в теме
(6) Чего-то у вас не правильно работает.
Проверил у себя

С кодом БС форма элемента не открывается, с ВТ - открывается
Прикрепленные файлы:
8. user1880116 18.09.24 21:51 Сейчас в теме
9. user1809279 19.09.24 07:56 Сейчас в теме
(7) сделала по вашему примеру - все равно та же ошибка
11. user1809279 19.09.24 08:51 Сейчас в теме
(10) Спасибо помогло, но теперь вот проблема, что без роли и с ролью недоступно поле счет закрыт, а мне его обязательно нужно закрывать, чтоб только те у кого роль есть могли ставить

&НаСервере
Функция ЕстьПраво()

Возврат РольДоступна("ДоступМенеджер")


КонецФункции

&НаКлиенте
Процедура Расш1_ПриОткрытииПеред(Отказ)

Если Объект.СчетЗакрыт = Истина Тогда

ЭтаФорма.Доступность = ЕстьПраво();

КонецЕсли;

ЭтаФорма.Элементы.СчетЗакрыт.Доступность = ЕстьПраво();
КонецПроцедуры
12. user2033930 19.09.24 09:12 Сейчас в теме
(11) Повторюсь - отладчик для трусов, да?
13. user1809279 19.09.24 09:18 Сейчас в теме
(12) Вижу что там ложь показывает
14. user2033930 19.09.24 09:27 Сейчас в теме
(13) Где там? Что там? У тебя в 4 строчках кода 28 мест с булевыми выражениями. Давай, мы сами догадаемся на какой строчке ты поставила точку останова, и в каком выражении из этой строчке Ложь.
И заодно поверим (мамой клянусь, да?), что после этой процедуры больше в коде нигде никакая доступность не изменяется.

И перестань уже пытаться всей форме назначить Доступность.
2. user2033930 18.09.24 14:40 Сейчас в теме
Потому что вот это
ЭтотОбъект.Элементы.СчетЗакрыт = Истина


И вообще - отладчик для трусов, да?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот