|
Скрыть одновременно несколько элементов формы. | ☑ | ||
---|---|---|---|---|
0
01230123
15.08.16
✎
22:15
|
Доброго времени суток.
Иногда нужно одновременно скрыть или сделать недоступными несколько элементов формы, находящихся рядом. Можно перечислять их все по очереди: ЭлементыФормы.ВремяС.Доступность = Ложь; ЭлементыФормы.ВремяДо.Доступность = Ложь; ЭлементыФормы.НадписьДатаОтгрузки1.Доступность = Ложь; ... А можно ли как-нибудь их объединить (невидимым элементом) и сделать недоступным весь блок? А то код некрасивый получается ;-) |
|||
1
Jija Grenkov
15.08.16
✎
22:23
|
В управляемых формах точно можно. А вот в обычных вроде как нельзя.
Что бы код стал красивее можно сделать процедуру которая спрячет элементы и вызывать ее где надо. |
|||
2
Jija Grenkov
15.08.16
✎
22:27
|
Вот только что придумал. Можно завести регистр накопления вида Форма, группа, элемент и туда записывать приход видимых элементов и расход невидимых. Остаток будет всегда показывать доступные элементы и обороты историю изменений )))
|
|||
3
Jija Grenkov
15.08.16
✎
22:27
|
жалко, что не пятница
|
|||
4
Garykom
гуру
15.08.16
✎
22:31
|
(2) Зачем нужен регистр когда достаточно СЗ или нечто вроде с именами контролов? И одной или пары процедур/функций?
|
|||
5
Garykom
гуру
15.08.16
✎
22:31
|
(0) Вам бы базовые алгоритмы программирования к примеру https://ru.wikipedia.org/wiki/Цикл_(программирование) подучить...
|
|||
6
Mauser
15.08.16
✎
22:33
|
(1) А потом кто нибудь нажмет "Изменить форму" и вытащит твои контролы из группы, ага.
(0) Если хочешь по-настоящему, заведи отдельную панель и играйся ей. |
|||
7
Jija Grenkov
15.08.16
✎
22:35
|
(4) Это была шутка. Максимум, что нужно -- регистр сведений что бы обеденить элементы в группы. Или захардкоженая коллецкия
|
|||
8
Jija Grenkov
15.08.16
✎
22:37
|
(6) можно запретить изменение формы
|
|||
9
Mauser
15.08.16
✎
22:40
|
(8) Обрубить пользователю руки из-за лени евелопера написать три строчки кода? Отличная идея!
Только между нами - что они вам такого сделали? |
|||
10
Garykom
гуру
15.08.16
✎
22:43
|
(5)+ Если не дошло то расжевываю (для кого сами догадайтесь):
СкрытьЭлементы("ВремяС, ВремяДо, НадписьДатаОтгрузки1"); ПоказатьЭлементы("ВремяС, ВремяДо, НадписьДатаОтгрузки1"); СделатьДоступнымиЭлементы("ВремяС, ВремяДо, НадписьДатаОтгрузки1"); СделатьНедоступнымиЭлементы("ВремяС, ВремяДо, НадписьДатаОтгрузки1"); |
|||
11
Garykom
гуру
15.08.16
✎
22:46
|
(10)+ Или продвинуть в будущее и одна процедура/функция:
УправлениеЭлементами("СписокЭлементовЧерезЗапятую", "ДействиеСЭлементамиМожноТожеЧерезЗапятую"); |
|||
12
Jija Grenkov
15.08.16
✎
22:47
|
(9) вот так стоит программисту дать слабинку и уже бухгалтер требует сформировать и отправить рег. отчетность )
|
|||
13
Garykom
гуру
15.08.16
✎
22:47
|
(11)+ По принципу как в функции формат будет совсем идеально:
УправлениеЭлементами("ВремяС, ВремяДо, НадписьДатаОтгрузки1", "Видимость=Ложь; Доступность=Ложь; ЕщеЧтоТо=ЧемуТо"); |
|||
14
Jija Grenkov
15.08.16
✎
23:17
|
(13) Как по мне перегружено смотрится. И писать много букв без автодополнения тоже напрягает. Я бы предпочел вариант из (10)
|
|||
15
Garykom
гуру
15.08.16
✎
23:19
|
(14) Кто мешает сделать обертки как в (10) над одной функцией из (13) ?
|
|||
16
Mauser
15.08.16
✎
23:25
|
(15) Надо добавить еще параметр - список вложенных элементов, которые не надо обрабатывать. А потом со всем этим барахлом мы попытаемся взлететь.
|
|||
17
Garykom
гуру
15.08.16
✎
23:32
|
(16) Ну низзя же так на ночь смешить )) гыгыгы
Не думаю что ТС тянет на КВСа... |
|||
18
Mauser
15.08.16
✎
23:34
|
(17) Можно дожать. Ограничиться работой на клиенте и передавать внутрь callback через ОписаниеОповещения
|
|||
19
Jija Grenkov
15.08.16
✎
23:34
|
(15) Никто не мешает. Но у меня выработалась модель разработки укрупнения (не знаю каким словом лучше это описать).
Тоесть иерархия была бы УправлениеЭлементами -> СкрытьЭлементы, ПоказатьЭлементы СделатьДоступнымиЭлементы ... -> УстановитьПараметр(Массив эл-ов, имяреквизита, значение) Но УправлениеЭлементами я нахожу функцией которая делает слишком много и будет усложнять читаемость и по этому не имплементирую этот слой. PS. Но это моменты уже субъективные и тут на много важнее следовать 1 стилю, чем искать идеал. |
|||
20
Jija Grenkov
15.08.16
✎
23:41
|
(16)(18) Как-то я слабо улавливаю ваш полет мысли. Если мы указываем элементы(не группы), то о каких усключеиях может идти речь?
|
|||
21
Garykom
гуру
15.08.16
✎
23:46
|
(19) У меня в (13) банально циклов обработки меньше = шустрее пашет в случае установки разных признаков для одного списка/группы контролов.
|
|||
22
Garykom
гуру
15.08.16
✎
23:50
|
(18) А это мысля... передавать для обработки списка свою функцию которая и будет вызываться... И в этой своей делать что угодно ))
|
|||
23
Mauser
15.08.16
✎
23:51
|
(20) Страница, поле таблицы с колонками, панель на ОФ и т.п
|
|||
24
Jija Grenkov
15.08.16
✎
23:56
|
(21) я не думаю, что это может стать узким местом системы. По этому отдаю предпочтение читаемости кода.
|
|||
25
Mauser
15.08.16
✎
23:58
|
(19) Ну это классическая проблема функционального подхода - что проще: добавить параметр или написать еще один метод.
Бухгалтерская аналогия - аналитика или синтетика? Ужи и узы, вы меня понимаете, мистер Андерсон? =) |
|||
26
Mauser
15.08.16
✎
23:59
|
Бедный ТС
|
|||
27
Jija Grenkov
16.08.16
✎
11:46
|
(25) мистер Смит, у меня появилось ощущение, что вы путаете функциональный и процедурный подход
|
|||
28
Mauser
16.08.16
✎
12:11
|
(27) В недрах тундры выдры в гетрах бодро тырят ядра кедров
|
|||
29
Garykom
гуру
16.08.16
✎
12:56
|
(28) мог бы и проще сказать что процедура - это функция без возврата результата
|
|||
30
Jija Grenkov
16.08.16
✎
15:09
|
(29) а функциональный подход на много дальше от 1с чем тот же ООП. От ООП там хоть кусочки есть, а вот от функциональщины нет ничего.
Вот на русском можно почитать. https://ru.wikipedia.org/wiki/Функциональное_программирование В общем писат ьв функциональном стиле - это не просто оперировать процедурами и функциями |
|||
31
Garykom
гуру
16.08.16
✎
15:14
|
(30) язык запросов чистейшей воды функциональщина
|
|||
32
Jija Grenkov
16.08.16
✎
16:23
|
(30) Язык запросов формально можно назвать деларативным, но точно не чистым функциональным. Есть ли там функции высшего порядка? лямбда замыкания? Да и еще есть куча внутренних состояний в виде оптимизатора запросов и статистики в результате чего 1 и тот же запрос может выполнять разные действия, для извлечения данных. В общем sql это сложный вопрос.
А тут судя по всему далеко не все поинимают почему функции/процедуры есть, а функционального подхода нет. |
|||
33
Garykom
гуру
16.08.16
✎
16:34
|
(32) ламбды и замыкания есть, функции высшего порядка тоже или как будто нельзя запросом получить текст другого запроса и выполнить его ))
|
|||
34
Jija Grenkov
16.08.16
✎
17:08
|
Я всегда считал, что лмбда замыкание - это возможность из вложенного скопа обратиться к переменным внешнего. Как можно во вложенном запросе обратиться к результатам внешнего мне не понятно.
+ что является функцией в таком случае? |
|||
35
Garykom
гуру
16.08.16
✎
17:21
|
(34) у нас же "язык запросов 1С" с внешними параметрами запроса
|
|||
36
Garykom
гуру
16.08.16
✎
17:22
|
(35)+ но что только на чтение это да особенность/ограниченность языка
|
|||
37
Mauser
16.08.16
✎
18:49
|
(34)
Чем тебе не замыкание? =) |
|||
38
Jija Grenkov
16.08.16
✎
19:58
|
(34) параметры чем-то похожи, примерно как общие модули на ООП.
(37) На мой взгляд это не замыкание, а какой-то сайд эффект. Так как мы обращаемся не к переменным внешней функции, а к 3 стороне из внешнего и внутреннего запроса. Измените "переменную" в родительском запросе и получите - это значение во вложенном. Вы меня заинтриговали и я решил почитать, на эту статеку на вики. Так вот SQL - декларативный язык, но не фунциональный. Декларативный - это более общее понятие чем функциональный отсюда и все ваши неудачные примеры. https://en.wikipedia.org/wiki/Declarative_programming изучайте |
|||
39
Jija Grenkov
16.08.16
✎
20:01
|
там же почитайте про процедурный стиль
|
|||
40
Mauser
16.08.16
✎
20:08
|
(38) (39) То есть ты сначала повозмущался и только потом сходил на вики. Прекрасно =)
|
|||
41
Jija Grenkov
16.08.16
✎
23:19
|
(40) проведу аналогию. На мисте пишут, что регистр бухгатерии лучше всего подходит для оперативного учета, вы высказываете другое мнение, но вас убеждают в обратном несколько человек. При этом появляется естественное желание проверить свою правоту почитав докумнетацию или вики.
|
|||
42
Mauser
16.08.16
✎
23:37
|
(41) Аналогии обманчивы. Ты можешь обнаружить, что речь идет про 7.7 а у тебя нет лицензии на оперативную компоненту. Ты доказываешь свою правоту, проверяя ее по куче форумов, и...
|
|||
43
Jija Grenkov
16.08.16
✎
23:46
|
(42)
1. Англоязычная вики крайнередко врет когда речь идет о IT, врядли получится найти более правдивые источники. 2. Может обнаружиться, все что угодно, по этому стоит отталкиваться от описанных учловий, а не пытаться объять необъятное. 3. Я в промышленной разработке использую много элементов из функционального программирования, по этому отталкиваюсь в первую очередь от практики |
|||
44
michael512
17.08.16
✎
06:29
|
Ээ, понятие цикла знакомо?
придумываешь префикс (или суффикс, неважно),главное чтобы однозначно определяло группу и пробегаешь циклом Для Каждого ЭФ Из ЭлементыФормы Цикл Если Найти(ЭФ.Имя, "Префикс")>0 Тогда ЭФ.Видимость = Ложь; КонецЕсли; КонецЦикла; |
|||
45
michael512
17.08.16
✎
06:37
|
(44) Префикс надо присвоить именам элементов, с которыми надо манипулировать в группе, например "ПрефиксПолеВвода1", "ПрефиксФлажок1" и т.д.
хм, первая строка кода почему-то выпала из форматирования |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |