Псевдозакладки в управляемой форме

Публикация № 1072163

Программирование - Работа с интерфейсом

Управляемая форма закладки excel интерфейс

6
Псевдостраницы (закладки) в управляемой форме, или Разгоняем форму до третьей космической скорости.

Здравствуйте, уважаемые мученики 1С. Предлагаю Вашему вниманию интерфейсное решение, навеянное обсуждением Есть ли возможность интерактивного добавления табличных частей в документ?.

То, что можно добавлять страницы (закладки), это все знают. Но тут нужно элементы формы размещать на каждую страницу. Как это избежать? Очень просто. Вид поля формы может быть  не только поле ввода, но и Поле переключателя, мало того, ему можно назначить вид Тумблер

Управляется элемент вида Тумблер Списком Выбора. Можно задать жестко или программно. Например:

СписокВыбора = Элементы.Организация.СписокВыбора;
Запрос = Новый Запрос("ВЫБРАТЬ
|	Организации.Ссылка КАК Ссылка
|ИЗ
|	Справочник.Организации КАК Организации");
СписокВыбора.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0));

Управлять этим элементом тоже не составляет труда. Добавляем или удаляем из Списка выбора нужное / ненужное значение. И в событии элемента формы ПриИзменении прописываем нужные действия.

И все. Никаких лишних элементов формы

Пример обработки написан и тестировался на платформе 8.3.13.1513. на конфигурациях БСП 2.4, УНФ 1.6, БП 3.0.

6

Скачать файлы

Наименование Файл Версия Размер
Пример псевдо закладок в управляемой форме:
.epf 8,52Kb
04.06.19
4
.epf 8,52Kb 4 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. tusv 159 04.06.19 23:14 Сейчас в теме
Глагол Мучать он двусмысленен. Толи я мучаю 1С, толи он меня. Добро пожаловать на обсуждение
4. AlX0id 05.06.19 07:55 Сейчас в теме
(1)
Совсем замучал по ходу.. В тэгах публикации зачем-то стоит excel..
22. tusv 159 05.06.19 12:12 Сейчас в теме
(4)А если я перемещю группу ГруппаУправление вниз формы и добавлю добавление колонки, на ёксель будет похоже ?
Ссылку откройте, что вверху:)
2. acanta 56 04.06.19 23:30 Сейчас в теме
В 8 ке есть возможность в реквизитах указывать индексировать и индексировать с доп.упорядочиванием.
Насколько будет медленно или быстро в базе работать отбор по трем реквизитам, где один из них например переключается тумблером, а два других выбираются в форме?
Имеет ли смысл использовать родной индекс 1с в справочнике (владелец+родитель+реквизит) и организовать справочник или регистр сведений тоже будет хорошо работать (быстро переключать данные в таблице)?
3. tusv 159 05.06.19 03:15 Сейчас в теме
(2)
Насколько будет медленно или быстро в базе работать отбор по трем реквизитам, где один из них например переключается тумблером, а два других выбираются в форме?

Вы это о чем? В форме в принципе индексов нет.. В статье речь идет о не нужных элементах
5. noprogrammer 135 05.06.19 09:07 Сейчас в теме
То, что можно добавлять страницы (закладки), это все знают. Но тут нужно элементы формы размещать на каждую страницу. Как это избежать?


Для того, что бы использовать закладки совсем необязательно рисовать элементы формы на каждой странице.
10. tusv 159 05.06.19 10:24 Сейчас в теме
(5)Ну есть метод переместить, все равно это лишнее действие
6. noprogrammer 135 05.06.19 10:07 Сейчас в теме
Во вложении пример работы с закладками (без рисования элементов на каждой закладке)
Прикрепленные файлы:
УправлениеЗакладками.epf
9. tusv 159 05.06.19 10:23 Сейчас в теме
(6)Код конечно красивый. Но у меня два элемента Вы создаете программно больше. Какая форма отработает быстрее?
11. noprogrammer 135 05.06.19 10:26 Сейчас в теме
(9) Что-то мне подсказывает, что разницы в скорости (по крайней мере на глаз) никто не заметит (даже если она и будет, эта самая разница)
15. tusv 159 05.06.19 10:34 Сейчас в теме
(11)Что то мне подсказывает, что Вы не работали на 3-х терабайтной базе. Да и у меня в основном коде строчек меньше, чем у Вас. Уже сэкономил для себя 30 минут, как кодер
18. tusv 159 05.06.19 11:56 Сейчас в теме
(11)Про знаменитую апорию Зенона знаете? Ахиллес ни когда не догонит черепаху. Переделаем её на &НаСервере и &НаСервереБезКонтекста. Будет похоже? А нафига эти директивы компиляции придумали? Значит есть разница в скорости
20. Sashares 17 05.06.19 12:00 Сейчас в теме
(18)
А нафига эти директивы компиляции придумали?

Чтобы не тащить на сервер весь контекст формы, на которой может быть 100500 записей в таблицах, если на сервере нужно сделать что-то не зависимое от формы. Например, выполнить какой нибудь запрос и вернуть результат.
24. tusv 159 05.06.19 12:21 Сейчас в теме
(20)О том и речь Я тащу на сервер и обратно всего 2 элемента формы. в (6) в разы больше и метод переместить , то есть дополнительная прорисовка формы при возвращении на клиент. А оно это надо?
12. noprogrammer 135 05.06.19 10:29 Сейчас в теме
(9) Программно создаю закладки, но никто не мешает создать их интерактивно (это просто пример). Если из примера выкинуть создание закладок и псевдофильтрацию то останется всего 2 строчки кода
25. noprogrammer 135 05.06.19 12:23 Сейчас в теме
То, что можно добавлять страницы (закладки), это все знают. Но тут нужно элементы формы размещать на каждую страницу. Как это избежать?


В (6) приведен пример того как этого избежать... Либо надо ставить вопрос по другому, либо....

По поводу скорости - в данном конкретном случае скорость вообще не важно ибо на глаз никто ее не заметит (0.005сек и 0,0005сек - никакой разницы визуально не будет)
7. Yashazz 2384 05.06.19 10:11 Сейчас в теме
Ничто не мешает нарисовать всё заранее в конфигураторе (если, конечно, у вас не лютый универсал), и просто рулить видимостью. Начиная с 8.3.8, кажется, изменение видимости не вызывает отправки формы на сервер и перечитывания, и потому работает быстро.

Что касается публикации - мне одному кажется, что это на уровне "как отсортировать список значений", по степени очевидности и примитивности?
CyberCerber; +1 Ответить
8. tusv 159 05.06.19 10:18 Сейчас в теме
(7)Сколько элементов формы у Вас будет? Сколько надо прописать по управлению видимостью?
Здесь только два элемента. Строчек кода 100 и в большей части по управлению Табличной частью. Ни каких видимостей прописывать не надо. Оно само прорисовывается. Мечта программиста:)
13. Sashares 17 05.06.19 10:29 Сейчас в теме
(8)Вырожденный пример.
Он подходит только для одного случая, когда различия только в отборе, накладываемом на таблицу.
Никакой заменой закладкам не является.
В большинстве случаев на разных закладках отображаются разные данные/требуется разное оформление и тд.
16. tusv 159 05.06.19 10:41 Сейчас в теме
(13)
Вырожденный пример

Все приёмы хороши, когда вовремя и к месту. Сейчас не нужно, потом вспомните
17. tusv 159 05.06.19 10:43 Сейчас в теме
(13)И да я этот прием использую и в других случаях
19. Sashares 17 05.06.19 11:57 Сейчас в теме
(17)По сути вы "изобрели" отбор для таблицы.
Поэтому не совсем понятно, зачем так громко об этом заявлять.
О каком разгоне формы в принципе идет речь?

При наличии большого количества значений отборов или при длинном их наименовании - размещать их на форме в переключателях - выглядеть будет стремно. Да и смысла нет это делать.

Стандартный подход для этого - 2 таблицы, в первой таблице - значение ключ, во второй - записи по отбору текущей строки первой таблицы.
21. tusv 159 05.06.19 12:08 Сейчас в теме
(19)По сути я ответил на вопрос обсуждения, указанный в статье.Судя по всему, Вы ссылку не открывали. На изобретение велосипеда я не претендую. Это всего лишь интерфейсное решение того вопроса. Уверен, что оно самое быстрое. Можете пройтись с секундомером и сравнить решение в (6) и моё Благо замер производительности есть..
23. Sashares 17 05.06.19 12:20 Сейчас в теме
(21)
Вы ссылку не открывали

Ссылку открывал.

(21)
Можете пройтись с секундомером и сравнить решение в (6) и моё

Оба варианта будут интерфейсно не читаемы при хотя бы количестве элементов более 10,
если конечно наименования элементов будут не "1", "2" и тд.

Скорость это еще не все =)
27. CyberCerber 287 05.06.19 13:44 Сейчас в теме
(23) Сори за оффтоп, сначала подумал, что человек сам с собой спорит :-)
28. tusv 159 05.06.19 13:49 Сейчас в теме
(27)
Сори за оффтоп, сначала подумал, что человек сам с собой спорит :-)

Нормальное явление. Это называется посоветоваться с умным человеком:)
В данной теме я отвечаю на все вопросы
14. tusv 159 05.06.19 10:30 Сейчас в теме
(7)
по степени очевидности и примитивности?

Мы анархисты максималисты, только для получения зряплаты, а так исповедуем принцип минимализма, особливо когда речь идет о терабайтных базах.:)
А кто сказал, что 1С это сложно?
26. tusv 159 05.06.19 12:26 Сейчас в теме
(23)
Скорость это еще не все =)

Дьявол в мелочах, Выигрываю на прорисовке формы, больше времени на завершении транзакции в проведении документа. А нафига лишняя миллисекунда на 3х терабайтной базе. Совсем не нужно. Лишнее наверное совсем:)
Давайте вернем коаксиал и все будет харашо:)
Кто не застал сего чуда это 10 мегабит на передачу инфы в очереди. 3G на тупом смартфоне быстрее
29. Wern03 14 07.06.19 10:29 Сейчас в теме
Обычно просто делал процедуру которая копирует элементы формы с одной закладки на другую. В результате одну закладку рисуешь как обычно. А потом раскопируешь их на все закладки, ну естественно включая всякие изменения, которые нужны.
30. gubanoff 47 10.06.19 09:19 Сейчас в теме
(0) мы решили эту же задачу путем генерирования кнопок. Получилось универсально и функционально, но уже не две строчки кода :)
Оставьте свое сообщение