Имя: Пароль:
1C
1С v8
УНФ. Блокировка полей документа
0 Foxmara
 
23.08.18
18:18
Нужно в документе событие сделать блокировку нескольких полей после записи. Сделано через расширение:
&НаСервере
Процедура Расш1_ПриЗаписиНаСервереПосле(Отказ, ТекущийОбъект, ПараметрыЗаписи)
эЛЕМЕНТЫ.НачалоСобытияДата.Доступность = ЛОЖЬ;
элементы.НачалоСобытияВремя.Доступность = ЛОЖЬ;
Элементы.ОкончаниеСобытияВремя.Доступность = ложь;
элементы.Содержание.Доступность = ЛОЖЬ;
Элементы.ОкончаниеСобытияДата.Доступность = ЛОЖЬ;
КонецПроцедуры
Работает, но надо, чтобы после закрытия и открытия документа поля все еще были заблокированы.

Пытаюсь сделать через добавление флага - добавил реквизит в документ
РПС_СобытиеЗапланировано
пишем туда же:
РПС_СобытиеЗапланировано = "ИСТИНА"; // принимает значение, но не сохраняется при записи документа.
1 igork1966
 
23.08.18
18:23
(0) Если меняешь флаг при записи а не перед записью, то так и будет.

Идея нехорошая, создавать поле на каждый случай...
Логичнее какой-нибудь регистр сведений сделать...
2 milan
 
23.08.18
18:33
При записи поздно, надо перед записью, а вообще блокировать удобно после записи и при чтении - открытие нового документа.
3 AlvlSpb
 
24.08.18
00:17
(0) если блокировки доступности включаются только при записи, то сделайте в ПриСозданииНаСервере проверку на наличие ссылки. Есть - все блокируется
4 Foxmara
 
24.08.18
05:32
Всем спасибо, решение другое:
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
    Если Не Параметры.Ключ.Пустая() Тогда
        Элементы.НачалоСобытияДата.Доступность = ЛОЖЬ;
        Элементы.НачалоСобытияВремя.Доступность = ЛОЖЬ;
        Элементы.ОкончаниеСобытияВремя.Доступность = ложь;
        Элементы.Содержание.Доступность = ЛОЖЬ;
        Элементы.ОкончаниеСобытияДата.Доступность = ЛОЖЬ;
        Элементы.Тема.Доступность = ЛОЖЬ;
        Элементы.Важность.Доступность = ЛОЖЬ;
    КонецЕсли;

КонецПроцедуры
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан