Вход | Регистрация
 

ТолькоПросмотр

ТолькоПросмотр
Я
   lav151
 
21.05.21 - 14:13
Всем добрый день

База БПС, своя разработка.
Нужно сделать так, чтобы ФормаДокумента была ТолькоПросмотр=Истина, при условии если стоит в документе галочка(Объект.ОтправкаВЗаявку) и документ уже проведен, только сама эта галочка должна быть редактируемой.

У меня получается только всю форму сделать только просматриваемой, а сделать редактируемую галочку не выходит. Что не так делаю? Подскажите пожалуйста

Пару примеров кода:
1)
Если Объект.Ссылка.Проведен И Объект.ОтправкаВЗаявку = Истина Тогда
  ТолькоПросмотр = Истина;
  ЭтаФорма.ЭтотОбъект.Элементы.ОтправкаВЗаявку.ТолькоПросмотр=Ложь;
КонецЕсли;

2)
    
Если Объект.ОтправкаВЗаявку=Истина и Объект.Проведен=Истина Тогда        
Для Каждого Элемент Из ЭтаФорма.ЭтотОбъект.Элементы цикл
  Имя_ = ВРЕГ(Элемент.Имя);
   Если Имя_  =  "ОТПРАВКАВЗАЯВКУ"
   ИЛИ Имя_ ="ОТПРАВКАВЗАЯВКУКОНТЕКСТНОЕМЕНЮ"
   ИЛИ Имя_= "ОТПРАВКАВЗАЯВКУРАСШИРЕННАЯПОДСКАЗКА"
   Тогда
     Продолжить;
   КонецЕсли;

   Если ТипЗнч(Элемент)=ТИП("ДекорацияФормы")
   Или ТипЗнч(Элемент)=ТИП("КнопкаФормы")
   Или ТипЗнч(Элемент)=ТИП("ДополнениеЭлементаФормы") Тогда
     Продолжить;
   КонецЕсли;

  Элемент.ТолькоПросмотр = ИСТИНА;

КонецЦикла;
КонецЕсли;
 
 Партнерская программа EFSOL Oblako
   Kassern
 
1 - 21.05.21 - 14:16
(0) Можешь попробовать не на всю форму пихать только просмотр, а на определенные группировки формы. Эту галочку запихнуть в отдельную группировку и на нее ограничение не ставить. При изменении галочки пересчитывать доступность групп.
   youalex
 
2 - 21.05.21 - 14:17
(0)А зачем тебе менять данные объекта (Объект.ОтправкаВЗаявку) , если ты все равно записать не сможешь, т.к. форма Только просмотр?
   RomanYS
 
3 - 21.05.21 - 14:17
(0) И где вопрос?
Второй вариант не работает? Может элемент ОтправкаВЗаявку в группe входит, которую заблокировал
   ДенисЧ
 
4 - 21.05.21 - 14:18
Если вся форма толькопросмотр, то и все реквизиты её тоже.
Поэтому закрывай всё, кроме галки
   lav151
 
5 - 21.05.21 - 14:19
(1) Хорошо, попробую
   RomanYS
 
6 - 21.05.21 - 14:21
(4) так он это и сделал в 2) Нужно кроме галки и групп в которые эта галка входит
   lav151
 
7 - 21.05.21 - 14:23
(3) Да, второй вариант не работает( Я посмотрю насчет группы
   lav151
 
8 - 21.05.21 - 15:04
(1) (6) Спасибо. Все сработало)
Если Объект.ОтправкаВЗаявку = Истина Тогда
        Этаформа.Элементы.Группа1.ТолькоПросмотр=Истина;
.............
КонецЕсли;

И так по всем группам сделал, кроме той группы где эта галочка стоит.
   Kassern
 
9 - 21.05.21 - 15:06
(8) можно это указать для верхней группы, все вложенные так же отработают
   Веселый собака
 
10 - 21.05.21 - 15:39
(8) можно было по метаданным объекта тупо пробежаться..
   Kassern
 
11 - 21.05.21 - 15:41
(10) это не модно и не молодежно
   Веселый собака
 
12 - 21.05.21 - 15:48
(11) тогда надо просить 1С выкинуть и ЗаполнитьЗначенияСвойств..
   Kassern
 
13 - 21.05.21 - 15:50
(12) зачем использовать цикл и гонять по всем метаданным, когда можно просто у 1 главной группы поставить только просмотр истина?
   Kassern
 
14 - 21.05.21 - 15:53
(12) как раз таки ЗаполнитьЗначенияСвойств норм выбор, не нужно бегать в цикле и заполнять все значения.
   Веселый собака
 
15 - 21.05.21 - 15:58
(13) просто это универсально.
По циклу ж не руками бегают
   Kassern
 
16 - 21.05.21 - 16:02
(15) но вы заставляете 1ску бегать, а тут платформа сама все делает. В примере с "ЗаполнитьЗначенияСвойств " вы тоже ручками не бегаете, платформа сама значения расставит. Группа даже универсальней, все что в нее добавится будет отрабатывать по логике верхней группы, а все что вне ее будет доступно для редактирования. В случае пробежки по метаданным, вам придется каждый раз условие дописывать, когда еще нужно будет исключить галочки из ограничений.

Список тем форума
 
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.