|
Работа с документом | ☑ | ||
---|---|---|---|---|
0
UUmmmmm
07.10.19
✎
15:49
|
Дали задание на стажировке по работе с документом. Документ должен помнить, кто его последний трогал и когда трогал. Пользователь на редактирование не должен иметь доступ к этим полям. Нигде не могу найти как это делается. Сказали смотреть уже в готовых документах, но не могу понять где там именно смотреть. Подскажите пожалуйста
|
|||
1
vicof
07.10.19
✎
15:52
|
По-разному можно сделать, хрен знает какая у вас там конфигурация, и как реализована история доступа к объектам.
|
|||
2
Temai
07.10.19
✎
15:53
|
Тяжелый случай
|
|||
3
piter3
07.10.19
✎
15:56
|
версионирование что ли
|
|||
4
shuhard
07.10.19
✎
16:03
|
(0) [но не могу понять где там именно смотреть]
уволен |
|||
5
_Дайвер_
07.10.19
✎
16:05
|
Ну так сделай регистр сведений, в нем можешь хранить все изменения которые тебе нужны, в твоем случае это изменяемый объект(измерение), дата изменения и пользователь(реквизиты) и в обработчике события после записи делай записи в этот регистр сведений. А вообще есть типовой механизм смотри регистр сведений "ВерсииОбъектов"
|
|||
6
UUmmmmm
07.10.19
✎
16:32
|
(5) уже разобралась, нужно было сделать так:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ДатаПоследнегоИзменения = ТекущаяДатаСеанса(); ПоследнийИзменивший = ПользователиКлиентСервер.ТекущийПользователь(); КонецПроцедуры А как теперь ограничить доступ пользователя к этим полям? |
|||
7
_Дайвер_
07.10.19
✎
16:34
|
(6) не верно, ты прочитай что за задание тебе дали, и что ты сделал(а) по факту
|
|||
8
_Дайвер_
07.10.19
✎
16:37
|
(7) Хотя, если они потом пишутся в регистр сведений то еще ок. Ограничить поля "Автор" и "Дата" можно в свойствах, установить птичку на параметр "Только просмотр"
|
|||
9
xenos
07.10.19
✎
16:38
|
(7) Почему не верно?
Если это надо для одного документа. Если не рассчитывать на продвинутых пользователей которые могут пользоваться групповой обработкой или типа такого. То можно создать просто реквизиты документа и на форме для этих реквизитов поставить ТолькоПросмотр. То сойдет. |
|||
10
_Дайвер_
07.10.19
✎
16:39
|
Скажи своим руководителям, чтобы дали тебе написать сначала учебную конфигурацию http://v8.1c.ru/metod/books/book.jsp?id=441
|
|||
11
_Дайвер_
07.10.19
✎
16:41
|
(9) Потому что если это (ДатаПоследнегоИзменения, ПоследнийИзменивший) реквизиты документа, то это просто перезапись, и никакого хранения истории нет. Для хранения нужен регистр сведений, код записи которого не был показан.
|
|||
12
xenos
07.10.19
✎
16:45
|
(11) 1. Нигде нет утверждения про условия.
2. Если это касается одного документа, то можно использовать табличную часть документа. стрИстор = тчИстория.Добавить стрИстор.ДатаПоследнегоИзменения = ТекущаяДатаСеанса(); стрИстор.ПоследнийИзменивший = ПользователиКлиентСервер.ТекущийПользователь(); Хотя лично я бы еще добавил реквизит "Состояние". Со значениями допустим "ВРаботе", "Утвержден". И при открытии документа, блокировал все реквизиты кроме состояния, и надо поменять состояние чтобы была возможность редактирования. |
|||
13
hhhh
07.10.19
✎
16:46
|
(11) ну там про историю в (0) ничего нет. Это вы уже придумали.
|
|||
14
_Дайвер_
07.10.19
✎
16:47
|
(12) (13) а как же "Документ должен помнить, кто его последний трогал и когда трогал", помнить значит "хранить"
|
|||
15
HawkEye
07.10.19
✎
16:47
|
(11) в (0) про историю - ни слова ))))
в контексте (0) кода из (6) - достаточно )) |
|||
16
UUmmmmm
07.10.19
✎
16:48
|
(8) получилось спасибо
|
|||
17
xenos
07.10.19
✎
16:48
|
(14) Просто в реквизитах документа ДатаПоследнегоИзменения ПоследнийИзменивший
|
|||
18
UUmmmmm
07.10.19
✎
16:49
|
(9) да так нужно было сделать
|
|||
19
_Дайвер_
07.10.19
✎
16:53
|
(15) Эх, все еще буквально все воспринимаю)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |