[Механизм интерфейса] Свой флажок (чекбокс)

31.08.20

Разработка - Работа с интерфейсом

Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.

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

Наименование Файл Версия Размер
[Механизм интерфейса] Свой флажок (чекбокс):
.cf 108,25Kb
31
.cf 108,25Kb 31 Скачать

Добрый день, Коллеги!

Проблема

При разработке очередного интерфейса испытал удивление. Оказывается стандартный платформенный флажок никак не увеличивается в размерах.

Согласитесь это некрасиво. Нужно искать решение.

Решение

Разработал универсальный алгоритм, который позволил по другому посмотреть на чекбокс и значительно улучшить дизайн будущего интерфейса.

Описание решения

Алгоритм использует некую зашифрованную логику в названии элементов и в их количестве, обо всём по порядку. Рассмотрим на примере ответа на вопрос (работа которого, продемонстрирована выше).

 
 Развернуть описание

 

Варианты

Теперь понятно, что мы не ограничены в стиле флажка от платформенной версии. Теперь мы можем самостоятельно определять дизайн будущего интерфейса. Варианты использования не ограничиваются примером выше, это может быть и привычный флажок, может быть переключатель, да что угодно, что принимает состояние ДА и НЕТ – пусть хоть смайл.

Пример

К публикации прилагаю конфигурацию с готовым исполнением алгоритма и как бонус – полностью программное создание элементов формы. Все элементы формы генерируются в момент запуска. Результат таких форм показан выше в публикации. А ниже демонстрирую, что есть в конфигурации.

Для работы примера скачиваемого из публикации необходима платформа не ниже 8.3.14.1694

PS:

Можно пойти дальше и создать чекбоксы с тремя состояниями, и даже свои кнопки. Но стоит заметить, что нет возможности фиксации на данных декорациях курсора, это важный и неприятный нюанс.

Всем удачного кодинга!

 

 

//+++ Обновление публикации от 31.08.2020 г.

//     Посмотрите новую статью "Динамическое формирование интерфейса"

//--- Обновление публикации от 31.08.2020 г.

UX UI дизайн интерфейс флажок чекбокс checkbox программное создание элемента формы

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61797    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54403    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16698    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10738    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9615    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3666    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12080    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1351 09.08.19 12:56 Сейчас в теме
(0) круто! интересно!
criptid; DrAku1a; TreeDogNight; Interrupted; rpgshnik; +5 Ответить
4. rpgshnik 3631 09.08.19 13:19 Сейчас в теме
2. Serg_Tangatarov 107 09.08.19 12:59 Сейчас в теме
Очень неплохо, спасибо за идею, возьмем на вооружение
DrAku1a; Interrupted; rpgshnik; +3 Ответить
5. rpgshnik 3631 09.08.19 13:20 Сейчас в теме
(2) пожалуйста 👍
Interrupted; +1 Ответить
3. m_aster 111 09.08.19 13:04 Сейчас в теме
Красиво! Только нравится и нравятся пишутся без мягкого знака.
UnashevRM; Maxanamoon; DrAku1a; PLAstic; товарищ Ын; TreeDogNight; WellMaster; Interrupted; maksa2005; Lapitskiy; papche; Comrade88; shard; CyberCerber; d_neon; chebser; Fragster; Kirill_K; +18 3 Ответить
6. rpgshnik 3631 09.08.19 13:20 Сейчас в теме
Ок, позже поправлю
DrAku1a; Interrupted; +2 Ответить
12. m_aster 111 09.08.19 16:56 Сейчас в теме
(6)
Чтобы было уже все красиво и по взрослому)
Interrupted; rpgshnik; +2 Ответить
13. rpgshnik 3631 09.08.19 17:17 Сейчас в теме
7. DTS2014 09.08.19 13:21 Сейчас в теме
8. vik070777 293 09.08.19 13:28 Сейчас в теме
Спасибо весьма интересно
Interrupted; rpgshnik; +2 Ответить
9. Fragster 1138 09.08.19 14:22 Сейчас в теме
10. Fragster 1138 09.08.19 14:33 Сейчас в теме
Ну и да, у меня получилось с реквизитом, элементом типа картинка и картинкой-коллекцией в пару строк (код для обычного флажка и трех состояний):

&НаКлиенте
Процедура РеквизитБулевоНажатие(Элемент, СтандартнаяОбработка)
	РеквизитБулево = Не РеквизитБулево;
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаКлиенте
Процедура РеквизитЧислоНажатие(Элемент, СтандартнаяОбработка)
	РеквизитЧисло = (РеквизитЧисло + 1) % 3;
	СтандартнаяОбработка = Ложь;
КонецПроцедуры
Показать
Прикрепленные файлы:
Merkalov; criptid; TreeDogNight; Bessondo; RustIG; acanta; rpgshnik; CyberCerber; +8 Ответить
16. rpgshnik 3631 09.08.19 18:49 Сейчас в теме
(10) если один к одному то да. А если заранее не известно сколько вариантов ответов будет... Один или одиннадцать. После ещё нужно получить результат ответа. Тут уже двух строчек мало будет 🙂
Interrupted; RustIG; +2 Ответить
37. Fragster 1138 14.08.19 16:39 Сейчас в теме
(16)
) если один к одному то да. А если заранее не известно сколько вариантов ответов будет... Один или одиннадцать. После ещё нужно получить результат ответа. Тут уже двух строчек мало будет 🙂

Ну, генерация по одному элементу управления на реквизит всяко проще групп страниц (или что там предлагается)
11. Synoecium 778 09.08.19 15:22 Сейчас в теме
Оригинально и просто. Спасибо за статью
Interrupted; rpgshnik; +2 Ответить
23. Yashazz 4709 11.08.19 10:14 Сейчас в теме
(11) Оригинально? Хм. Очевидная же вещь.
26. Synoecium 778 11.08.19 17:51 Сейчас в теме
(23) оригинально в том плане, что вместо борьбы с типовым флажком используется обходной механизм. В 1с многое приходится делать неочевидным образом, чтобы выглядело и работало по-человечески, поэтому я одобряю такие заметки - они расширяют возможности.
TuneSoft; PLAstic; TreeDogNight; SergeyTerentyev; kuzyara; fd13; Interrupted; rpgshnik; +8 Ответить
14. mvxyz 322 09.08.19 17:55 Сейчас в теме
Красиво. Спасибо за статью.
Interrupted; rpgshnik; +2 Ответить
15. Brawler 454 09.08.19 17:58 Сейчас в теме
Надеюсь это не будет применяться на практике.
Почему?
Боюсь зоопарка интерфейсов.
17. Craig 274 09.08.19 22:41 Сейчас в теме
(15) У меня был заказчик, которых хотел с нуля свою конфигурацию. Но от платформы 1с отказался по причине - "Стремно, один интерфейс на все, даже дизайнер не поможет..."
TreeDogNight; rpgshnik; +2 Ответить
18. Brawler 454 09.08.19 23:31 Сейчас в теме
(17) Вам шашечки нужны или ехать?
В плане интерфейса 1С очень удачно сделана и все в ней унифицировано выглядит, функционально, что есть огромный плюс.
8.3.15 так вообще еще краше стала, ну или по крайней мере новый свежий глоток воздуха.
Да есть к чему стремиться и 1С вносит все больше, и больше изменений, но все это не так просто и всегда нужно держать баланс чтобы можно было все возможности мультиплатформенно реализовать и везде одновременно, отсюда и черепаший темп разработок, но так ли нужна гонка?
Потом, если дикую расцветку хочется сделать, так уже анонсированы возможности по корпоративным стилям, можно желтое превратить в зеленое и радоваться.
Умиляют те же программисты Delphi, которые без огромных библиотек разных кнопочек жить не могут, и понимаешь, что люди сидят кнопочки рисуют на формочках, а не бизнес логику пишут.
Кнопочки разноцветные нужны ну допустим в программе проведения тестирования к примеру или в игрушках разных (это уже не тема 1С), да и там свои подходы к рисованию GUI имеются и свои фраймворки.

Зоопарк кнопочек в интерфейсе ЗЛО, пользователи и так не шибко квалифицированные, ко всему привыкают сложно, а если каждое окно будет "произведением искусства", то бедолаги вообще ноги протянут.
TreeDogNight; tsmult; Yashazz; bulpi; +4 Ответить
19. rpgshnik 3631 10.08.19 03:50 Сейчас в теме
(18)
а если каждое окно будет "произведением искусства"

Окно должно быть таким, чтобы "бедолаги" не говорили "Вася, а где инструкция к этой чудесной 1С", по этому окно быть должно произведением дизайна.
TreeDogNight; +1 Ответить
21. Craig 274 10.08.19 12:06 Сейчас в теме
(18) Да в том то и дело, когда мне озвучил заказчик - что не хочет делать на 1с, я был полон возмещения и негодования. Зоопарк плохо, требования не правильные и вообще это не проектная технология 1с ...

Спустя год я поработал с битриксом 24, амосрм, джасткликом, клиент банками от Тинькова, Открытия, Альфыбанка и понял что 1с пока не может удовлетворить потребность заказчика. И та задача которая была у заказчика, лучше реализовать на другой платформе. К слову задача была создать управленческую программу для инфобизнеса (облако, красиво, просто). А так как с программой должны будут работать "творческие личности предприниматели" то и требования к программе были дизайнерские.

Пока у всех в головах 1С = Бухгалтерия, а бухгалтерия - это унылая стандартизация процессов.

P.S. Что касается "шашечки" - 1С это и есть шашечки. (Требование к оформлению НСИ, документов, отчетов, данных в системе, стандартизация кодирования, СППР и т.д.). А поехать можно и на другой платформе.
TreeDogNight; rpgshnik; +2 1 Ответить
20. RustIG 1351 10.08.19 09:17 Сейчас в теме
(17) если ребенок съел кошачью еду, это проблема кошки, а не ребенка :)
22. Craig 274 10.08.19 12:09 Сейчас в теме
(20) Первоисточник звучит немного по другому: "Третий ребёнок - если съел кошачий корм, то это проблемы кота"
24. Yashazz 4709 11.08.19 10:17 Сейчас в теме
Ровно ничего интересного и оригинального. Очевидно напрашивающиеся решения, такие, как эмулировать "красоту" декорациями или хтмл-формой внутри 1С-формы - были ещё хз когда. Я так ещё лет 8 назад делал "круглые кнопки" в УФ и обычных формах. А теперь, когда даже в типовых конфах проскальзывают попытки это делать (например, элементы контактной информации) - и вовсе скучно.
Разве что, могу отметить, сделано достаточно аккуратно.
25. Yashazz 4709 11.08.19 10:22 Сейчас в теме
А вообще, "детская" болезнь наворотить всяких бантиков и плюшек со временем проходит. Потому что есть стандарт, к которому люди привыкают; есть вопросы психологии восприятия, которые влияют, и есть приоритет важности разработки, где интерфейс на энном месте (ну если вам только не попался клиент-придурок, которому именно шашечки). Так что порисуют-порисуют такие, а потом возвращаются в нормальный штатный вариант.

Меня тут попросили воспользоваться стилями в "Такси", ну сделал, поработали месяца два и попросили вернуть всё обратно)
27. script 128 11.08.19 22:11 Сейчас в теме
Какой капец. В 2019 году чтобы сделать нормальный чек бокс в 1С, нужно писать кучу кода, и играться с видимость элементов и картинок. Это просто позор какой-то. И не нужно здесь писать про унифицированность. Унифицированность в интерфейсах должно быть личным делом дизайнера интерфейса, а не 1С.
ixijixi; Seaflame; PLAstic; weeff; TreeDogNight; zhuravlev_as; 7OH; rpgshnik; +8 Ответить
38. lmnlmn 69 21.01.20 13:19 Сейчас в теме
(27) Это вы еще с деревьями на управляемой форме не работали - тут очень мало кода))
Merkalov; RustIG; +2 Ответить
28. dandykry 10 12.08.19 08:53 Сейчас в теме
Правильно ли я понимаю:
При изменении картинки, происходит контекстный серверный вызов?
Все картинки нужно хранить в конфигурации/расширении?

Думаю проще было сделать через ascii таблицу. Там куча галочек и квадратиков. Вышло бы просто текстом. 1с это ест. Цвет и стиль заменить не проблема.

Правда вроде изменение заголовка у элемента тоже вызывает контекстный вызов сервера (точно не помню)
Silenser; TreeDogNight; dabu-dabu; Yashazz; +4 Ответить
29. Yashazz 4709 12.08.19 10:47 Сейчас в теме
(28) вот, здравый подход. И насчёт вызова сервера - 1С к счастью этим наконец занялась и убирает ненужные вызовы, может, нет уже в новых релизах.
30. rpgshnik 3631 12.08.19 11:13 Сейчас в теме
(28) Картинка не меняется, выводиться - две картинки сразу. Управление происходит видимостью элементов.
32. dandykry 10 12.08.19 12:09 Сейчас в теме
(30) Идея хорошая, я не критикую)
Я писал библиотеку по динамическому изменению формы (реквизиты элементы команды) и прошелся по граблям) В простых формах работает на ура и сделать программно красиво получается, но когда форма содержит много данных, то все очень медленно.

Например даже такая вещь http://prntscr.com/oriuiv работает быстро, если это текст, и колоссально медленно, если к наименованию выводить картинки (почти одинаково, что получить все картинки сразу, что запрашивать их только для отображаемых)
33. rpgshnik 3631 12.08.19 18:02 Сейчас в теме
(32) спасибо проверю на практике
31. VmvLer 12.08.19 11:37 Сейчас в теме
я раньше(лет 10 назад) собирал всякие картинки и рюшки.
потом понял, что глупо соревноваться в фантазии с разработчиками и выбросил все.
юзаю типовые и наверняка они(головные) стырят идею и впилят че-нить подобное, если за это будут платить.
34. user621724_Dimav1979 401 12.08.19 21:59 Сейчас в теме
Красота! А администратор 1с понять не может, куда ресурсы сервера уходят и почему система однажды колом встала.
За творчество +
Silenser; sam271091_m; +2 1 Ответить
39. Silenser 592 21.01.20 16:58 Сейчас в теме
(34) Это да, изменение видимости приводит к серверному вызову и чем сложнее форма, тем больше будет загружен сервер :(
40. kalyaka 1053 04.04.20 16:54 Сейчас в теме
(39) (29)
изменение видимости приводит к серверному вызову
У меня на платформе 8.3.16.1148 изменение видимости картинки не приводит к серверному вызову
35. user1202776 13.08.19 14:11 Сейчас в теме
только на управляемых форма работает?
36. rpgshnik 3631 14.08.19 04:14 Сейчас в теме
(35) представленный алгоритм да
41. kalyaka 1053 04.04.20 17:03 Сейчас в теме
нет возможности фиксации на данных декорациях курсора
Если попробовать такой код:
&НаКлиенте
Процедура НажатьЧекБокс(НомерЧека)	
...
	//  Сохранение фокуса на декорации
	Если ТекущиеСостояние Тогда
		ЭтаФорма.ТекущийЭлемент = Элементы[ИмяЧека + Строка(НомерЧека)];
	Иначе
		ЭтаФорма.ТекущийЭлемент = Элементы[ИмяЧека + Строка(НомерЧека) + "а"];
	КонецЕсли; 
КонецПроцедуры
Показать
, то курсор останется на нажатой декорации. Вы про это писали?
rpgshnik; +1 Ответить
42. rpgshnik 3631 05.04.20 07:22 Сейчас в теме
43. ITSun 23.07.20 10:17 Сейчас в теме
Красивая наработка для интерфейса:) +
rpgshnik; +1 Ответить
44. Lancelot-2M 115 01.09.22 12:19 Сейчас в теме
Анафема на это графоманство)))))))))))))))))))
Оставьте свое сообщение