|
Заблокировать все элементы на форме кроме 2ух | ☑ | ||
---|---|---|---|---|
0
denis_solyanko
08.12.14
✎
07:08
|
Такое задание в документе формы, есть две галочки, нужно сделать так чтобы , если стоят обе тогда заблокировать изменение всех элементов кроме двух полей, как сделать можно, кроме того что каждому элементу писать элемент.доступность = ложь. как сделать поэкономичнее
|
|||
1
Cube
08.12.14
✎
07:22
|
Используй силу цикла....
|
|||
2
ilyavorobyev
08.12.14
✎
07:44
|
(0) если управляемые формы, сделай группу, в которой будут все элементы кроме твоих двух и по условию убирай или разрешай доступность группы
|
|||
3
denis_solyanko
08.12.14
✎
08:32
|
(1) нет у меня обычное приложение, такой вопрос в цикле перебираю, а у надписи нет такого свойства . как сделать проверку на тип надпись
Если не РольДоступна("ПолныеПрава")тогда Если Распечатан и Набрано тогда Для каждого элемент из ЭлементыФормы цикл Если не элемент.ТипЗначения = Тип("Надпись") тогда элемент.ТолькоПросмотр = истина; ЭтаФорма.ЭлементыФормы.ЗаявкаОт.Доступность = Истина; конецесли; конеццикла; ЭтаФорма.ЭлементыФормы.ЗаявкаОт.ТолькоПросмотр = ложь; ЭтаФорма.ЭлементыФормы.ПровестиБезУчетаОстатков.Доступность = Истина; Конецесли; КонецЕсли; |
|||
4
denis_solyanko
08.12.14
✎
08:32
|
(1) не срабатывает проверка
что не правильно пишу |
|||
5
Cube
08.12.14
✎
09:17
|
(3) (4) ТипЗнч(элемент)...
|
|||
6
del123
08.12.14
✎
09:30
|
Помести все элементы кроме двух на панель и делай доступность к ней.
|
|||
7
denis_solyanko
08.12.14
✎
11:20
|
(6) уже есть готовая форма ее трогать не стоит
|
|||
8
denis_solyanko
08.12.14
✎
11:24
|
(1) продолжение нужно сделать запрет редактировании даты доумента если значение больше недель от текущей даты
Если Дата > (ТекущаяДата() + 604800) тогда Предупреждение("Нельзя менять дату больше чем на 7 дней!"); Конецесли; а как сделать чтобы значение которое было до этого вернулось? |
|||
9
pessok
08.12.14
✎
11:29
|
Форма.ТолькоПросмотр = Истина;
Элементы.РазрешенныйЭлемент.ТолькоПросмотр = Ложь; |
|||
10
Cube
08.12.14
✎
11:30
|
(8) Корявое условие какое-то...
Если документ уже записан в базу, то можно обратиться к сохраненной в БД версии объекта через "Ссылка". К дате так: Ссылка.Дата. |
|||
11
pessok
08.12.14
✎
11:30
|
(8) Отказ = Истина;
|
|||
12
denis_solyanko
08.12.14
✎
11:35
|
(9)так не работает я пробовал только если в цикле каждому элементу присваиваешь свойство
|
|||
13
denis_solyanko
08.12.14
✎
11:35
|
(10) спасибо) все получилось
|
|||
14
denis_solyanko
08.12.14
✎
11:36
|
в ссылке хранится дата нужная ее заново присваиваю и все
|
|||
15
Cube
08.12.14
✎
11:38
|
(14) Если документ ещё не записан в базу, то в ссылке пустая дата. Учти это при разработке...
|
|||
16
denis_solyanko
08.12.14
✎
11:38
|
(10) цикл сделал все нужно только просмотр ставить только некоторым элементам,
Если РольДоступна("ПолныеПрава")тогда Если Распечатан и Набрано тогда Для каждого элемент из ЭлементыФормы цикл Если ТипЗнч(элемент) <> Тип("Надпись") тогда Если ТипЗнч(элемент)<> Тип("КоманднаяПанель") тогда Если ТипЗнч(элемент)<> Тип("Панель") тогда Если ТипЗнч(элемент)<> Тип("РамкаГруппы") тогда Если ТипЗнч(элемент)<> Тип("Кнопка") тогда Если ТипЗнч(элемент)<> Тип("Флажок") тогда элемент.ТолькоПросмотр = истина; иначе элемент.Доступность = Ложь; конецесли; конецесли; Конецесли; конецесли; конецесли; конецесли; конеццикла; ЭлементыФормы.Дата.ТолькоПросмотр = Ложь; ЭлементыФормы.ЗаявкаОт.ТолькоПросмотр = ложь; ЭлементыФормы.ПровестиБезУчетаОстатков.Доступность = Истина; Конецесли; КонецЕсли; как этот кусок оптимизировать |
|||
17
Cube
08.12.14
✎
11:40
|
(16) Мать моя женщина...
Ты про логические операторы слыхал вообще?)) |
|||
18
pessok
08.12.14
✎
11:42
|
кажется, это называется "китайский код"
|
|||
19
denis_solyanko
08.12.14
✎
11:49
|
(17) или?
|
|||
20
denis_solyanko
08.12.14
✎
11:49
|
имеешь ввиду)
|
|||
21
Cube
08.12.14
✎
11:54
|
(19) ИЛИ, И, НЕ...
И лучше пользоваться равенством, чем неравенством - вроде как равенство работает быстрее. Для твоего кода-то использовать равенство можно без проблем. |
|||
22
denis_solyanko
08.12.14
✎
12:22
|
(21) Если Не( ТипЗнч(элемент) = Тип("Надпись")) ИЛИ Не( ТипЗнч(элемент)<> Тип("КоманднаяПанель")) ИЛИ.... в таком духе?
|
|||
23
denis_solyanko
08.12.14
✎
12:22
|
= там)) неисправил в таком духе имеешь ввиду использовать или
|
|||
24
Рэйв
08.12.14
✎
12:24
|
(0)Попробуй всей форме поставить Толькопросмотр=Истина, а нужным = ложь. Правда сам не пробовал, но может получиться:-)
|
|||
25
Рэйв
08.12.14
✎
12:24
|
*нужным реквизитам
|
|||
26
denis_solyanko
08.12.14
✎
12:26
|
(24) пробовал, не работает так если ставишь форме только просмотр, все блоируется потом нельзя отдельным реквизитам задать свойства
|
|||
27
denis_solyanko
08.12.14
✎
12:38
|
Итог
Если РольДоступна("ПолныеПрава")тогда Если Распечатан и Набрано тогда Для каждого элемент из ЭлементыФормы цикл Если НЕ( ТипЗнч(элемент)= Тип("Надпись")) И НЕ( ТипЗнч(элемент)= Тип("КоманднаяПанель")) И НЕ( ТипЗнч(элемент)= Тип("Панель")) И НЕ (ТипЗнч(элемент)= Тип("РамкаГруппы")) И НЕ (ТипЗнч(элемент)= Тип("Кнопка")) И НЕ (ТипЗнч(элемент)= Тип("Флажок")) тогда элемент.ТолькоПросмотр = истина; конецесли; конеццикла; ЭлементыФормы.Дата.ТолькоПросмотр = Ложь; ЭлементыФормы.ДатаОплаты.ТолькоПросмотр = Ложь; ЭлементыФормы.ЗаявкаОт.ТолькоПросмотр = ложь; ЭлементыФормы.ПровестиБезУчетаОстатков.Доступность = Истина; Конецесли; конецЕсли; |
|||
28
denis_solyanko
08.12.14
✎
12:38
|
(21) Спасибо за оказанную помощь
|
|||
29
Cube
08.12.14
✎
12:43
|
(27) ))))))) Переходи на следующий уровень - скобки :))
Если НЕ (ТипЗнч(элемент) = Тип("Надпись") ИЛИ ТипЗнч(элемент) = Тип("КоманднаяПанель") ИЛИ ТипЗнч(элемент) = Тип("Панель") ИЛИ ТипЗнч(элемент) = Тип("РамкаГруппы") ИЛИ ТипЗнч(элемент) = Тип("Кнопка") ИЛИ ТипЗнч(элемент) = Тип("Флажок")) тогда элемент.ТолькоПросмотр = истина; КонецЕсли; |
|||
30
Vladal
08.12.14
✎
12:48
|
ИменаИсключений = "Имяреквизита1, ИмяРеквизита2 и т.д.";
Для каждого ЭлементФормы Из ЭлементыФормы Цикл Если ЭлементФормы = ЭлементыФормы.ПодтвержденПолучателем ИЛИ ЭлементФормы = ЭлементыФормы.ПодтвержденОтправителем ИЛИ ЭлементФормы = ЭлементыФормы.ОсновныеДействияФормы ИЛИ ЭлементФормы = ЭлементыФормы.ДействияФормы Тогда Продолжить; КонецЕсли; Если ЭлементФормы = ЭлементыФормы.КоманднаяПанельТовары Тогда Для Каждого КнопкаПанели Из ЭлементФормы.Кнопки Цикл // Элементы с признаком ИзменяетДанные сделать недоступными. Если КнопкаПанели.ТипКнопки = ТипКнопкиКоманднойПанели.Подменю Тогда Для каждого ПунктПодменю Из КнопкаПанели.Кнопки Цикл Если ПунктПодменю.ИзменяетДанные Тогда ПунктПодменю.Доступность = Ложь; КонецЕсли; КонецЦикла; Иначе Если КнопкаПанели.ИзменяетДанные Тогда КнопкаПанели.Доступность = Ложь; КонецЕсли; КонецЕсли; КонецЦикла; Иначе Если Нати(ЭлементФормы.Имя, ИменаИсключений) > 0 Тогда Продолжить; Конецесли; Попытка ЭлементФормы.ТолькоПросмотр = Истина; Исключение Попытка ЭлементФормы.Доступность = Ложь; Исключение КонецПопытки; КонецПопытки; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |