|
УФ. Как в ТЧ у поля сделать ТолькоПросмотр, но с кнопкой открытия | ☑ | ||
---|---|---|---|---|
0
Max1986
26.04.12
✎
12:54
|
Как в УФ в ТЧ у поля сделать ТолькоПросмотр, но с кнопкой открытия.
сабж. Надо что бы в списке у ТЧ пользователь не мог изменяь номнклатуру, но посмотреть (нажав на лупу - мог). Если ставлю у поля ТолькоПросмотр, то лупа пропадает. Как это сделать? |
|||
1
Buster007
26.04.12
✎
13:03
|
вот это да... 1С отожгло...
|
|||
2
Buster007
26.04.12
✎
13:06
|
ну что ж... пиши обработчики... )
|
|||
3
Buster007
26.04.12
✎
13:21
|
&НаКлиенте
Процедура ТЧВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) Если Поле.ТолькоПросмотр тогда ИмяПоля = ВернутьИмяКолонки(Поле.Имя); МассивПримитивныхТипов = Новый Массив; МассивПримитивныхТипов.Добавить(Тип("Число")); МассивПримитивныхТипов.Добавить(Тип("Строка")); МассивПримитивныхТипов.Добавить(Тип("Булево")); Значение = Элемент.ТекущиеДанные[ИмяПоля]; Если НЕ МассивПримитивныхТипов.Найти(ТипЗнч(Элемент.ТекущиеДанные[ИмяПоля])) = Неопределено тогда Возврат; КонецЕсли; ОткрытьЗначение(Значение); КонецЕсли; КонецПроцедуры &НаСервере Функция ВернутьИмяКолонки(Поле) ПутьКДанным = Элементы[Поле].ПутьКДанным; Пока Найти(ПутьКДанным, ".") > 0 цикл ПутьКДанным = Сред(ПутьКДанным, Найти(ПутьКДанным, ".")+1, СтрДлина(ПутьКДанным)); КонецЦикла; Возврат ПутьКДанным; КонецФункции |
|||
4
Buster007
26.04.12
✎
13:22
|
+(3) плохо что на сервер всю форму конечно тащу...
|
|||
5
wald
26.04.12
✎
13:35
|
(4) Можно проще. в процедуре НачалоВыбора() проверяй на какое нибудь условие (можно роль создать) и если не нужно выбирать, то СтандартнаяОбработка = Ложь; Тоже самое в процедуре Очистка().
|
|||
6
Buster007
26.04.12
✎
13:42
|
(5) а если я начну в поле вводить текст и будет срабатывать автоподбор?
|
|||
7
Buster007
26.04.12
✎
13:42
|
(5) и для каждого поля я должен процедуру писать?
|
|||
8
Mort
26.04.12
✎
13:43
|
А тупо по щелчку в поле не сутба открывать?
|
|||
9
wald
26.04.12
✎
13:43
|
(5) Можно еще круче - делаешь ТолькоПросмотр у поля. А для таблицы создаешь команду контекстного меню, что-то типа "Открыть элемент". Пишешь обработчик для команды и пользватели писают кипятком))
|
|||
10
Buster007
26.04.12
✎
13:44
|
(8) это как?
|
|||
11
wald
26.04.12
✎
13:44
|
(7) ну создай общую процедуру обработчиков.... конечно нужно для каждого поля соответсвующую процедуру писать
|
|||
12
wald
26.04.12
✎
13:46
|
Кстати чтобы не создавать обработчик для каждого поля, команда контекстного меню ваще тема, можно по текущим данным определять какую ссылку нужно отркывать, не нужно залезать на сервер
|
|||
13
Mort
26.04.12
✎
13:49
|
(10)
&НаКлиенте Процедура ПрограммныеОбъектыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) Если Поле = Элементы.ПрограммныеОбъекты1ПрограммныйОбъект Тогда НС = ПолучитьНавигационнуюСсылку(Элемент.ТекущиеДанные.ПрограммныйОбъект); ПерейтиПоНавигационнойСсылке(НС); КонецЕсли; КонецПроцедуры |
|||
14
Buster007
26.04.12
✎
13:51
|
(13) молодец ) у меня 10 колонок у всех только просмотр. Для каждого поля писать условие?
|
|||
15
Mort
26.04.12
✎
14:12
|
(14) Если Поле.ТолькоПросмотр... и т.д.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |