|
модифицированность реквизита | ☑ | ||
---|---|---|---|---|
0
nAPACEHAK
31.07.17
✎
14:53
|
Доброго всем
Есть элемент справочника. в нем многомного реквизитов, ТЧ итд Надо разрешить запись, отловив условие: Если изменился только ОдинВажныйРеквизит - то разрешить запись, и запретить запись если изменился любойдругойреквизит, строкаТЧ, итд. т.е. истина - если изменен всего один реквизит и ложь, если любой другой либо комбинация нужныйреквизит + любойдругой как правильно сделать? кроме как, передзаписью (), циклом обойти все реквизиты и сравнить реквизит = ссылка.реквизит есть еще варианты? или может более правильные варианты? обычные формы спасибо |
|||
1
Buster007
31.07.17
✎
15:35
|
Заблокировать изменение других реквизитов и оставить доступным только тот, который изменять можно
|
|||
2
Philix
31.07.17
✎
15:36
|
(0) Смотри для примера модуль справочника Договоры контрагентов в типовых БП, УТ. Там есть проверка на изменение валюты, владельца и еще чего-то...
|
|||
3
youalex
31.07.17
✎
15:39
|
(0) изначально задача в чем заключается?
|
|||
4
Дмитрий
31.07.17
✎
16:00
|
(0) по условию получается, что нужно следить только за изменением одного Очень важного Реквизита. Зачем все обходить?
|
|||
5
nAPACEHAK
31.07.17
✎
16:05
|
(3) Справочник "задачи"
когда его открываем - проверяем количество невыполненных, и если оно велико, то не давать сменить ничего, кроме реквизита "КомуПоручено". И если невыполненных мало - то можно менять любой реквизит думаю а) либо модифицированность как проверять при записи реквизитов б) на форме всему кроме КомуПоручено выставить только чтение но и там и там руками приходится все реквизиты перебирать. а их многовато |
|||
6
Fish
31.07.17
✎
16:12
|
(5) А "велико" и "мало" - это сколько?
|
|||
7
nAPACEHAK
31.07.17
✎
16:13
|
(6) в принципе нет же разницы. Если что - то число одновременно невыполненных = константа.получить ()
|
|||
8
Fish
31.07.17
✎
16:15
|
(7) Честно говоря, непонятен смысл (5). Для чего это вообще нужно? Имхо, гораздо проще привязаться к сроку исполнения.
|
|||
9
nAPACEHAK
31.07.17
✎
16:19
|
(7) и так привязано. если текущая дата больше планируемого срока - то не выполнена становится задача.
для чего надо - что бы не открывали пару десятков задач, и они бы так и висели не выполненными. как только превышен лимит то не давал бы редактировать итд. только можно было пререкинуть с одного исполнителя на другого. остальные поля не разрешать менять |
|||
10
FIXXXL
31.07.17
✎
16:19
|
(0) сделай переменную (реквизит формы)
ПриИзменении любой хрени, кроме Очень важного Реквизита взводи флаг |
|||
11
Fish
31.07.17
✎
16:25
|
(9) Т.е. у тебя получается, что если у исполнителя уже превышен лимит просроченных задач, то ему новую задачу нельзя назначить?
|
|||
12
nAPACEHAK
31.07.17
✎
16:26
|
(10) будет многомного обработчиков
ПриИзмененииХерни () )) и изменение ОченьВажногоРеквизита + изменение ДругогоРеквизита тоже как бы придется отслеживать |
|||
13
Mankubus
31.07.17
✎
16:30
|
(12) Сделай один обработчик ПриИзмененииОченьВажногоРеквизита. И возводи флаг.
Если флаг = ложь, то реквизит не менялся |
|||
14
Serg_1960
31.07.17
✎
16:33
|
(5) Если обычные формы: запрос при открытии формы и после анализа результата запроса в форме устанавливается свойство ТолькоПросмотр. А изменение реквизита "КомуПоручено" можно сделать через контекстное меню из списка справочника без открытия формы.
|
|||
15
nAPACEHAK
31.07.17
✎
16:37
|
вот еще такая шляпа придумалась. вроде работает и кода поменьше
Для каждого Эл Из ЭлементыФормы Цикл Попытка Эл.ТолькоПросмотр = Истина; Если Тип (Эл) = Тип ("Флажок") Тогда Эл.Доступность = Ложь; КонецЕсли; Исключение КонецПопытки; КонецЦикла; ЭлементыФормы.Сотрудник.ТолькоПросмотр = Ложь; |
|||
16
Basilio
31.07.17
✎
16:38
|
Процедура ПередЗаписью()
ЗаполнитьЗначенияСвойств(Объект, Объект.Ссылка, , "ОченьВажныйРеквизит"); КонецПроцедуры |
|||
17
youalex
31.07.17
✎
16:39
|
(5) как вариант, можно этот рек вынести в РС (будет одно измерение - ссылка на задачу, и ресурс -КомуПоручено)
В форме справочника - добавить поле ввода КомуПоручено, писать в РС при изменении. Если остальные реквизиты - недоступны. то ЭтаФорма.ТолькоПросмотр =Истина; ЭлементыФормы.КомуПоручено.ТолькоПросмотр = Ложь; |
|||
18
nAPACEHAK
31.07.17
✎
16:40
|
(13)
а) только Реквизит сменился - записать можно б) Реквизит сменился , но попутно еще реквизиты поменяли. по идее писать нельзя. как отслеживать? (16) мысль (17) не прокатит т.к. форма.толькопросмотр перекроет всё |
|||
19
youalex
31.07.17
✎
16:42
|
(18) Прокатит, если КомуПоручено - не связан с основным реквизитом формы (СправочникОбъект)
|
|||
20
Basilio
31.07.17
✎
16:45
|
(16) это было в порядке бреда. Нельзя так над людьми издеваться.
По хорошему к задаче нужен комплексный подход, здесь нужно интерфейс удобный продумать и из него уже исходить. |
|||
21
nAPACEHAK
31.07.17
✎
16:45
|
(19) связан. отдельным реквизитом не получится
|
|||
22
nAPACEHAK
31.07.17
✎
16:47
|
Так остановился
Для каждого Эл Из ЭлементыФормы Цикл Попытка Если Тип (Эл) = Тип ("ПолеВвода") ИЛИ Тип (Эл) = Тип ("ТабличноеПоле") Тогда Эл.ТолькоПросмотр = Истина; КонецЕсли; Если Тип (Эл) = Тип ("Флажок") Тогда Эл.Доступность = Ложь; КонецЕсли; Исключение КонецПопытки; КонецЦикла; |
|||
23
Ц_У
31.07.17
✎
19:11
|
Объект.Реквизит <> Объект.Ссылка.Реквизит
|
|||
24
Cyberhawk
31.07.17
✎
19:30
|
"что бы не открывали пару десятков задач, и они бы так и висели не выполненными. как только превышен лимит то не давал бы редактировать итд" // Так пользователь откроет заранее все старые задачи и твои интерфейсные запреты не помогут
|
|||
25
youalex
31.07.17
✎
21:02
|
Имхо,тут сама модель хромает. Сама задача (со множеством реквизитов и ТЧ) -это отдельная сущность. А то, на ком эта сущность висит - это уже другая сущность. Собственно,сама тема сигнализирует об этом)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |