|
v7: formex "ДобавитьАтрибут()" | ☑ | ||
---|---|---|---|---|
0
Dolly_EV
09.07.14
✎
15:31
|
Всем доброго времени суток!
Добрался наконец сделать открытие форм Справочников и Документов по умолчанию только на просмотр. И, чтобы начать редактировать, заставляю юзера жать кнопку "Изменить..." Кнопку хочу добавить всюду формекс'ом Вот код в глобальнике: //====================================================================== Процедура глФормаОткрытьДляРедактирования(Конт) Экспорт Конт.Форма.ТолькоПросмотр(0); Конт.Форма.кнРедактироватьОбъект.Видимость(0); лКоммент="Объект открыт для редактирования"; Попытка лКонт=Конт.ТекущийДокумент(); лТипСобытия="Документ"; Исключение лКонт=Конт.ТекущийЭлемент(); лТипСобытия="Справочник"; КонецПопытки; ЗаписьЖурналаРегистрации(лКоммент,лТипСобытия,,лКонт,2); глФормаРасш.УстановитьФорму(Конт.Форма); Для Х = 0 По глФормаРасш.КоличествоАтрибутов() - 1 Цикл Атр = глФормаРасш.ПолучитьАтрибут(Х); ТипАтр = Число(Атр.Тип); ИдАтр = Атр.Идентификатор; Если ТипАтр = 3 Тогда Если (ИдАтр<>"кнПечать") И (ИдАтр<>"кнДействия") И (ИдАтр<>"кнВыбПечать") Тогда //Кнопки Атр.Доступность=1; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры // глФормаОткрытьДляРедактирования //====================================================================== Процедура глФормаТолькоПросмотр(Конт) Конт.ПометкаУдаления(); // Спр или Док Конт.Форма.ТолькоПросмотр(1); глФормаРасш.УстановитьФорму(Конт.Форма); Для Х = 0 По глФормаРасш.КоличествоАтрибутов() - 1 Цикл Атр = глФормаРасш.ПолучитьАтрибут(Х); ТипАтр = Число(Атр.Тип); ИдАтр = Атр.Идентификатор; //Сообщить("Тип: "+Строка(ТипАтр)+" //Ид: "+Строка(ИдАтр)+" //Заг: "+Атр.Заголовок); Если ТипАтр = 3 Тогда Если (ИдАтр<>"кнПечать") И (ИдАтр<>"кнДействия") И (ИдАтр<>"кнВыбПечать") Тогда //Кнопки Атр.Доступность=0; КонецЕсли; КонецЕсли; КонецЦикла; кнРед=глФормаРасш.ДобавитьАтрибут("кнРедактироватьОбъект",3); Лево=0; Верх=0; Ширина=0; Высота=0; кнРед.ПолучитьКоординаты(Лево, Верх, Ширина, Высота); Сообщить("Лево:"+Лево+" Верх:"+Верх+" Ширина:"+Ширина+" Высота:"+Высота); кнРед.УстановитьКоординаты(Лево, Верх-17, Ширина, Высота); кнРед.Заголовок="Изменить..."; кнРед.Формула="глФормаОткрытьДляРедактирования(Контекст)"; кнРед.Подсказка="Открыть объект для редактирования"; КонецПроцедуры // глФормаТолькоПросмотр //====================================================================== Процедура ПослеОткрытия(Конт) Попытка Если Конт.Выбран()=1 Тогда глФормаТолькоПросмотр(Конт); КонецЕсли; Исключение КонецПопытки; КонецПроцедуры // ПослеОткрытия Вопросы следующие: 1. Когда начинаю играться с координатами кнопки, установка "Верх" = отрицательным срабатывает только для модальной формы - кнопка "уползает" выше формы на панель окна. Если форма не модальная - "минус" не помогает - кнопка остается в том же месте, где и создалась. Как победить? Точнее как лучше сделать и куда привязать кнопку, учитывая многообразие различных форм? 2. Как "убить" кнопку после ее нажатия? Понятно что через "Видимость" - как красиво обойти смену слоев? чтобы не тыкать код по всем формам? |
|||
1
Duke1C
09.07.14
✎
15:37
|
Может тупо в параметрах выставить режим открытия объектов - Просмотр??
|
|||
2
Dolly_EV
09.07.14
✎
15:39
|
(1) это где такое?
|
|||
3
Ёпрст
09.07.14
✎
15:40
|
(2) сервис-параметры
|
|||
4
Ёпрст
09.07.14
✎
15:41
|
можно и программно задать , либо правкой cfg у юзверя, либо через управлениеНастройками, есть вк от trad
|
|||
5
Dolly_EV
09.07.14
✎
15:44
|
(1)(2) А, понял. не не катит. Придется до юзеров доносить что есть системная кнопка, + хочется в журнале отлавливать событие, что юзер СОЗНАТЕЛЬНО надавил "изменить..."
|
|||
6
Dolly_EV
09.07.14
✎
15:46
|
(4) Ёпрст, посоветуй чего-нибудь красивое, ты же мастер фокусов :-)
|
|||
7
Ёпрст
09.07.14
✎
15:46
|
Добавлять кнопку - моветон.
В разы проще либо кнопку в панельинструментов самой формы, либо в панеь меню главного окна .. и усё. |
|||
8
Dolly_EV
09.07.14
✎
15:47
|
(7) "В разы проще либо кнопку в панельинструментов" - вот это по-подробнее
|
|||
9
ИЧтоТакое1с
09.07.14
✎
15:48
|
(1) так юзвер может обратно поменять....
|
|||
10
Duke1C
09.07.14
✎
15:50
|
(9) Ну юзверь нынче тупой и ленивый, если уж автор не знает, то юзер подавно :)
|
|||
11
Dolly_EV
09.07.14
✎
15:52
|
(10) если юзверь захочет напакостить - обязательно напакостит, причем чем тупее - тем больше напакостит. Про (1) я знал, просто сразу отмел вариант.
|
|||
12
ИЧтоТакое1с
09.07.14
✎
15:59
|
(6) сейчас "Мастер" приведет простое и изящное решение... как всегда это у него гениально получается...
|
|||
13
Dolly_EV
09.07.14
✎
16:03
|
(12) Вот-вот.. ждемс...
|
|||
14
Ёпрст
09.07.14
✎
16:06
|
А чего ждёте ?
Как кнопку в панель струментов добавить ? либо через рвджетс, либо через миракл, либо через дюнаврап, либо ручонками отрисовывать, либо свой тулбар через активикс слепить с блекджеком и .. Проще через миракл |
|||
15
ИЧтоТакое1с
09.07.14
✎
16:07
|
Я далеко не такой спец как Ёпрст. В формексе есть возможность отловить менюшку которая вызывается при правом щелчке на документе?
|
|||
16
Ёпрст
09.07.14
✎
16:09
|
(15) через контекстное меню.. не совсем очевидное редактирование будет
|
|||
17
Duke1C
09.07.14
✎
16:21
|
(13) Тады уж лучше в панель меню 1 раз добавить, чем заморачиваться с добавлением в каждой форме
|
|||
18
Dolly_EV
09.07.14
✎
16:22
|
(14) по мираклу пытался описалово собрать в кучу - нифига не вышел каменный цветок.. обрывки всякие. Есть?
|
|||
19
Dolly_EV
09.07.14
✎
16:23
|
(15) через контекстное - это еще хуже будет чем системную кнопку "Изменить (Открыть)" научить нажимать
|
|||
20
Dolly_EV
09.07.14
✎
16:24
|
+(18) желательно als )))
|
|||
21
Ёпрст
09.07.14
✎
16:26
|
(18) валялось где-то, проще у автора спросить (одних только модификаций - вагон)
|
|||
22
Duke1C
09.07.14
✎
16:28
|
(20) als тока старые, автор компоненты забил на документацию с определенного времени и новые плюшки описывал в комментах к разработке.
Добавь в панель меню и через Формекс разбирай АктивныйКонтекст, и юзер к одной кнопке быстрее привыкнет. У меня так несколько универсальных вещей реализовано |
|||
23
Dolly_EV
09.07.14
✎
16:28
|
(21) автор, насколько помню, не заморачивался ни разу системным описанием :-(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |