|
v7: редактирование реквизита справочника | ☑ | ||
---|---|---|---|---|
0
alisto
07.12.11
✎
17:30
|
Здравствуйте!
Подскажите пожалуйста, как организовать доступ пользователя к одному реквизиту справочника для редактирования? Можно ли в цикле перебрать все реквизиты и установить доступность реквизитов в 0 (ложь), а после цикла установить доступность только к нужному? Как? Спасибо! |
|||
1
palpetrovich
07.12.11
✎
17:39
|
программно что-ли, в зависимости от прав?
|
|||
2
alisto
07.12.11
✎
17:47
|
(1) программно.
Поясню ситуацию. Есть пользователь, который не может редактировать справочник "Контрагенты", но ему можно (и нужно) редактировать реквизит "Цена перевозки" который находится в форме справочника "Контрагенты". В ходе проверки справочника на доступность происходить установка ТолькоПросмотр(1) если нет прав. Я Хочу, для этого пользователя сделать ТолькоПросмотр(0), но при этом заблокировать все реквизиты кроме одного... |
|||
3
viktor_vv
07.12.11
✎
17:49
|
Formex'ом можно, но это ВК.
|
|||
4
YF
07.12.11
✎
17:50
|
(2) Да, как в (0) и пишешь
|
|||
5
alisto
07.12.11
✎
17:53
|
(4) Как? Можно пример? Перебор я делаю, но как заблокировать/разблокировать реквизит?
|
|||
6
viktor_vv
07.12.11
✎
17:54
|
Ну без ВК можешь загнать все реквизиты в два спискаЗначений. Первый полный, второй доступных. Потм в цикле по первому, проверяешь вхождение во второй и Форма.ПолучитьАтрибут(ИдентификаторЭлементаИзСпискаЗначений).Доступность(0).
|
|||
7
viktor_vv
07.12.11
✎
17:56
|
Неудобвство в том, что списки значений надо ручками набить. Может есть и проще вариант штатными средствами, но я его не знаю.
|
|||
8
viktor_vv
07.12.11
✎
17:57
|
(6) С условиями я че-то там напутал, но пронцип такой.
|
|||
9
FN
07.12.11
✎
18:02
|
Сделай внешнюю обработку с выбором клиента, окошком для значения реквизита и кнопкой ЗАПИСАТЬ
|
|||
10
YF
07.12.11
✎
18:02
|
(9) Ага, а кто-то другой в это время откроет этот элемент и писец
|
|||
11
FN
07.12.11
✎
18:04
|
(10) это можно легко разрулить
|
|||
12
YF
07.12.11
✎
18:05
|
(11) как?
|
|||
13
alisto
07.12.11
✎
18:06
|
(9) Да я думал так сделать... Только юзер он ведь такой... Не хочет ничего делать лишнего.
Приведите привет, плиз. (12) Залочить наверное. :) |
|||
14
alisto
07.12.11
✎
18:07
|
(13) ))) Приведите приМеР, плиз. Заработался уже.
|
|||
15
Ёпрст
07.12.11
✎
18:07
|
(12) блокировку еще никто не отменял пока.
|
|||
16
viktor_vv
07.12.11
✎
18:07
|
Проверять блокировку, и матюкаться. Или в момент ыбора блокировать.
|
|||
17
Sk0rp
07.12.11
✎
18:07
|
(10) А если в карточке товара редактировать что-то изменится?
(12) Сказать, что заблокирован и попросить записать позже. |
|||
18
Ёпрст
07.12.11
✎
18:08
|
(16) да не проверять, а самому ставить при открытии своей поделки
|
|||
19
viktor_vv
07.12.11
✎
18:08
|
(18) Ну второй вариант я так и написал, почти.
|
|||
20
FN
07.12.11
✎
18:10
|
(14) можешь еще проще сделать: в приоткрытии Если пользователь=вася то СтатусВозврата(0) ОткрытьФорму(Обработка.изменениеРеквизита,ТекущийЭлемент)
|
|||
21
alisto
07.12.11
✎
18:10
|
Люди добрые, "пример в студию"!
|
|||
22
Vladal
07.12.11
✎
18:10
|
(0) ОбработкаВыбораЗначения - и в ней плясать.
Если ИмяРеквизита <> "СтоимостьПеревозки" Тогда СтатусВозврата(0); Возврат; КонецЕсли; |
|||
23
Vladal
07.12.11
✎
18:11
|
(17) Это семерка.
|
|||
24
alisto
07.12.11
✎
18:17
|
(22) можно чуть подробнее? я не глупый, я просто 8 люблю. )
|
|||
25
palpetrovich
07.12.11
✎
18:23
|
(24) дык, куда еще подробней? единственное еще условие на права пользователя втулить
|
|||
26
palpetrovich
07.12.11
✎
18:24
|
+ только наверное лучше анализировать в ПриНачалеВыбораЗначения()
|
|||
27
viktor_vv
07.12.11
✎
18:26
|
(22) Для реквизитов без кнопки выбора не взлетит.
|
|||
28
viktor_vv
07.12.11
✎
18:29
|
(24) Если немного реквизитов надо редактировать, то самый простой это (9) + (20) .
|
|||
29
Web00001
07.12.11
✎
18:31
|
Зафигачить на форму кнопочку, которая будет изменять нужный реквизит не предлагать?
|
|||
30
Classic
07.12.11
✎
18:35
|
(0)
Точно семерка? У тебя все темы по 8 |
|||
31
alisto
08.12.11
✎
09:48
|
(30) Специально перепроверил, точно 7! :))
(29) Вешаем кнопочку на форму справочника "Контрагенты", по нажатию всплывает форма для ввода цены, в этой форме устанавливаем цену, жмём установить? Примерно так? Как народ думает? |
|||
32
alisto
08.12.11
✎
11:48
|
Всем спасибо, сделал так:
СпрКонтрагенты = Метаданные.Справочник("Контрагенты"); КолвоРеквизитов = СпрКонтрагенты.Реквизит(); Для Ном=1 to КолвоРеквизитов Цикл Попытка Рекв = СпрКонтрагенты.Реквизит(Ном); ФормаРекв = Форма.ПолучитьАтрибут(Рекв.Идентификатор); Если СпрКонтрагенты.Реквизит(Ном).Идентификатор <> "ЦенаПеревозки" Тогда ФормаРекв.Доступность(0); Иначе ФормаРекв.Доступность(1); //Сообщить(Рекв); КонецЕсли; Исключение //Сообщить(Рекв); КонецПопытки; КонецЦикла; |
|||
33
palpetrovich
08.12.11
✎
12:17
|
(32) можно и так, для определенного пользователя (роли) конечно. А можно было такого пользователя вообще не пускать в форму для редактирования, добавить в форму списка числовой реквизит и кнопку - и пусть изменяют ЦенаПеревозки для текущего элемента оттуда :) ...оно и удобнее (быстрее) наверное будет
|
|||
34
FN
08.12.11
✎
12:54
|
(32) кнопочки и остальные элементы _формы_ остались доступны. например кнопочка [X] - очистка реквизита - будет доступна...
(33) +1 |
|||
35
FN
08.12.11
✎
13:04
|
Держи простейшую "болванку" псевдоредактирования в списке.
Только добавишь свое условие на имя реквизита Процедура ПриОткрытии() Форма.ОбработкаВыбораСтроки(1); КонецПроцедуры Процедура ПриВыбореСтроки() текреквизитстр=Форма.АктивныйЭлемент(); Если Метаданные.Справочник(ТекущийЭлемент().Вид()).Реквизит(текреквизитстр).Выбран()=0 Тогда Возврат; Иначе текреквизит=ТекущийЭлемент().ПолучитьАтрибут(текреквизитстр); Если ВвестиЗначение(текреквизит,"Укажите новое значение")=1 Тогда спр=СоздатьОбъект("Справочник."+ТекущийЭлемент().Вид()); спр.НайтиЭлемент(ТекущийЭлемент()); спр.УстановитьАтрибут(текреквизитстр,текреквизит); спр.Записать(); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
36
FN
08.12.11
✎
13:07
|
(35)+ уточню на всякий случай - это нужно пихать в форму списка а не элемента
|
|||
37
alisto
08.12.11
✎
13:57
|
(32) (33) Спасибо!
В (32) не весь код, про кнопочки я не забыл :) |
|||
38
alisto
08.12.11
✎
13:57
|
блин, (33) (34) спасибо!
|
|||
39
alisto
08.12.11
✎
15:09
|
Переделал, подскажите, можно как нибудь убрать колонку в форме списка (сделать ее не видимой по условию)?
|
|||
40
alisto
08.12.11
✎
15:12
|
Всё, разобрался. Видимость(0) и всё летит.
Всем большое спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |