Имя: Пароль:
1C
 
ТолькоПросмотр кроме проведения
0 Nykos
 
14.07.15
15:38
Всем привет. Надо запретить пользователю редактировать проведенные документы. Т.к. на форме элементов оver9000 использую конструкцию

Если ЭтотОбъект.Проведен Тогда
ЭтаФорма.ТолькоПросмотр = Истина;
Иначе
ЭтаФорма.ТолькоПросмотр = Ложь;
КонецЕсли;

В этом случае кнопка "Отменить проведение" также становится недоступна и единственный способ отменить проводки - это вернутся в форму списка и отменить там. Как этого избежать? Можно ли установить ТолькоПросмотр на форму за исключением кнопок проведения?
1 Casey1984
 
14.07.15
15:40
(0) Редактировать низзя, а отменять проведение можно?

Для Каждого Элемент из Элементы...?
2 Cyberhawk
 
14.07.15
15:40
Можно - обходи все ЭУ в цикле
3 Лефмихалыч
 
14.07.15
15:40
(0) надо определиться - их таки можно править или нет. Если - нет, то вернуться в список не должно помогать. Если - да, то убери свои костыли
4 Одинесю
 
14.07.15
15:40
(0) Делай тогда для элементов формы, а не для всей формы.
5 Одинесю
 
14.07.15
15:44
Только смысл перепроведения не измененного документа.
6 sash-ml
 
14.07.15
15:45
Подписка на событие, перед записью документа?
7 Nykos
 
14.07.15
15:46
(1) (3) Пользователь 65-ти "путает" кнопки и иногда вместо добавления копированием просто открывает документ правит его и перезаписывает...
8 Nykos
 
14.07.15
15:51
(7) если надо поправить документ, то он сделает это осознанно, отменив проведение
9 Одинесю
 
14.07.15
15:53
(8) Да, только у тебя документ будет недоступен для редактирования.
10 fisher
 
14.07.15
15:54
Если пользователь может отменить проведение, поменять и провести, то почему он не должен просто менять проведенные?
11 Mirnin
 
14.07.15
15:55
(7) Ну, если проблема только в невнимательности, возможно стоит поискать более мягкие решения проблемы.
Например, предупреждение при перезаписи. Или предупреждение при изменении.
12 Одинесю
 
14.07.15
15:55
(10) Осознанно, в (7) он пояснил.
13 Nykos
 
14.07.15
15:56
(10) потому что бабуля это делает по невнимательности) не следит за тем, открыла она его или скопировала. и начинает херячить с успешным последующим проведением.
14 Nykos
 
14.07.15
15:57
(11) возможно. главное запихнуть это приОткрытии а не в приЗаписи)
15 fisher
 
14.07.15
15:58
(7) Тогда сказать, чтобы не путал. Или запретить ему кнопки. Завтра придет другой, которому это будет неудобно, но будет другой заскок.
16 Одинесю
 
14.07.15
15:59
Теперь я понимаю почему у нас половину документов нельзя добавить копированием ))
17 Nykos
 
14.07.15
16:01
(15) Сказать?) Ты хотел сказать годами дрессировать?
18 Mirnin
 
14.07.15
16:01
(14) ПриИзмененииДанных..
НЕ ЭтоНовый().. Или Модифицированность(). Или.. да как угодно.
19 fisher
 
14.07.15
16:02
Можно перед проведением проведенного спрашивать "Марьиванна! Вы точно хотели исправить документ, а не создать новый копированием?"
20 sash-ml
 
14.07.15
16:02
в обновление отображения что-то вроде

Для Каждого Эл из ЭлементыФормы Цикл
  Эл.Доступность = Ложь;
КонецЦикла;
ЭлементыФормы["ДействияФормы"].Доступность = Истина;
21 Casey1984
 
14.07.15
16:23
Берите пример с ОС Windows: Вы действительно хотите изменить документ? А вы ли это? А если подумать?
22 patapum
 
14.07.15
16:27
(19) при изменении реквизита, у проведенного документа, для этого пользователя
23 ixijixi
 
14.07.15
16:31
Если Возраст(Пользователь) > 60 Тогда
Предупреждение("Бабка! Это не тот документ!")
КонецЕсли;
24 patapum
 
14.07.15
16:41
(0) а если по серьезному, в УТ 11 реализовано, проведенные документы открываются на просмотр. и есть кнопка "Изменить", которая это отключает. по крайней мере, логично.
видимо (не помню, смотреть лень), у кнопки не стоит "изменяет данные", поэтому только просмотр на нее не действует.
25 fisher
 
14.07.15
16:41
(22) Именно. Зато других не затрагивает и эту кривульку потом можно безболезненно выкосить.
26 Nykos
 
14.07.15
17:01
Если ЭтотОбъект.Проведен Тогда
Для Каждого Эл из ЭлементыФормы Цикл
Эл.Доступность = Ложь;
КонецЦикла;
ЭлементыФормы["ДействияФормы"].Доступность = Истина;
ЭлементыФормы.ОсновныеДействияФормы.Доступность = Истина;
Иначе
Для Каждого Эл из ЭлементыФормы Цикл
Эл.Доступность = истина;
КонецЦикла;
КонецЕсли;
27 Nykos
 
14.07.15
17:02
Вечерком еще перепроверю, но вроде работает корректно) Спасибо (20) , то что нужно)
28 DTXqueque
 
14.07.15
17:27
(0) (26)
ЭтаФорма.ТолькоПросмотр = Объект.Проведен.
29 sash-ml
 
14.07.15
17:34
(26) Лучше для непроведенных устанавливать доступность элементов из метаданных
Документы[Метаданные().Имя].ПолучитьФорму("ФормаДокумента").ЭлементыФормы
30 ТолькоПросмотр
 
14.07.15
18:11
(0) По возможности избегайте реализации таких заскоков пользователей.
31 Гёдза
 
14.07.15
18:28
отдельную кнопку вместо стандартной, без привязке к изенению данных
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс