Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя

Опубликовал Юрий Тимофеев (Tatitutu) в раздел Программирование - Работа с интерфейсом

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей.
Как сохранить ЦВЕТ

Добрый день !

Пользователи стали все более изощренными и предвзятыми и им очень нравиться , когда ВСЁ раскрашено в ИХ цвета

- минимальные остатки

- отрицательные остатки

- товар с нулевым остатков

- помеченный на удаление товар

- цвет товара

и.т.д.

и каждый хочешь видеть "свои" цвета.

Конечно можно всех послать ... работать и не забивать себе голову, отвлекая великий разум.

Но, захотелось сделать красиво на практике, и просмотр поиска выдал некоторые приемы сохранения цвета

(план характеристик, хранилище, функции и формулы, замудренные алгоритмы....)

А мне все-таки хотелось простоты как для пользователя, так и для программиста. Что-то вроде реквизита на форме "Поле ввода" с типом значения "Цвет". Но такой реквизит просто так не сохранить, так как он имеет три значения (Зеленый, Красный, Синий)

Итак идея!

подготовить шаблон - лучше всего подходит Табличный документ ( расширение *.mxl)

и формат(ы) будет хранить НУЖНАЯ ЯЧЕЙКА табличного документа

Определяем поля (колонки)

  • использовать/не использовать 
  • условие
  • формат

Простая обработка, которая загружает нужный файл (имя файла - пользователь + разукрашка.mxl) 

 

Дальше открываем свойства выбранной ячейки (колонка № 3)

и здесь нам доступно все !!!!

- шрифт (размер, наименование, жирный, зачеркнутый, подчеркнутый, наклонный)

- цвет фона, цвет узора, цвет текста, оформление и.т.д.

настраиваем и сохраняем шаблон.

В настройках пользователя, добавить флаг - Использовать раскраску (Булево). Глобальная переменная ТДРазукрашка

Процедура ЗагрузитьРазукрашку() Экспорт
    Перем ИмяФайлаРазукрашки;
    ПараметрыСеанса.РаскраскаПользователя = Ложь;

    ИмяФайлаРазукрашки = Константы.ПутьКартинок.Получить() + "РАЗУКРАШКА.mxl";
    ПроверкаРазукрашки = Новый файл(ИмяФайлаРазукрашки);
    Если ПроверкаРазукрашки.Существует() Тогда
        Попытка
            ТДРаскраска = Новый ТабличныйДокумент;
            ТДРаскраска.Прочитать(Константы.ПутьКартинок.Получить() + "РАЗУКРАШКА.mxl");
            ПараметрыСеанса.РаскраскаПользователя = Истина;
        Исключение

        КонецПопытки;
    КонецЕсли;

КонецПроцедуры

//получаем нужное оформление
//параметры шрифта, цвет текста, цвет фона
ТекОбл = ТДРаскраска.Область(4, 3); //строка УСЛОВИЕ, колонка 3 - это отформатированная ячейка
ОформлениеСтроки.ЦветТекста = ТекОбл.ЦветТекста;
ОформлениеСтроки.ЦветФона = ТекОбл.ЦветФона;
НовШрифт = ТекОбл.Шрифт;
ОформлениеСтроки.Шрифт = Новый Шрифт(НовШрифт, Неопределено, НовШрифт.размер, НовШрифт.Жирный, НовШрифт.Наклонный, Неопределено, НовШрифт.Зачеркивание);

Смотрим результат.

Добавляем реквизит (флажок) для отключения этого.....цветопредставления.

 

Всегда ваш Tatitutu (c)

См. также

Комментарии
1. Юрий Тимофеев (Tatitutu) 3569 22.06.15 10:44 Сейчас в теме
2. Андрей Карпов (karpik666) 362 22.06.15 11:13 Сейчас в теме
(1) Tatitutu, Прикольно, так получается судя по коду 1 файл разукрашка для всех пользователей? Никакой индивидуальности=) и как обстоят дела с производительностью, если хранить цвета в отдельном файле?
3. Юрий Тимофеев (Tatitutu) 3569 22.06.15 11:16 Сейчас в теме
(2) Это в этом примере (код такой)
Прикрутить можно как угодно и где угодно.
"Простая обработка, которая загружает нужный файл (имя файла - пользователь + разукрашка.mxl) "
в каталоге базы - сохраняет малюсенький файл . Производительность не страдает. (но даже на этот случай, всегда одним кликом можно отключить)
В том то и дело, что мы специально не храним цвета, они храняться штатными средствами и форматом 1С
Удобно, доступно, просто.
4. Яков Коган (Yashazz) 1977 22.06.15 13:30 Сейчас в теме
5. Val Yan (valvit) 7 24.06.15 09:41 Сейчас в теме
Поскольку при написании кода нужно заранее знать что ячейка 4,3 это "нулевые остатки", то структура файла для каждого пользователя должна быть идентичной, потому как вариант создавать эти файлики обработкой которая обеспечивает идентичность структуры. А как идея самого хранения инфы, интересно.
6. Юрий Тимофеев (Tatitutu) 3569 24.06.15 09:48 Сейчас в теме
(5) valvit, Статья и подается как ИДЕЯ - может кому и пригодиться в реализации свой задачи.
это один из множества приемов, а чем больше приемов мы знаем - тем мы профессиональнее становимся.
да именно так у меня и реализовано. Если у нового пользователя нет файлика - то он автоматически создается из ОБЩЕГО Шаблона.
Очень удобно и быстро привыкаешь и пользователи довольны.
7. bulpi bulpi (bulpi) 106 25.06.15 20:45 Сейчас в теме
А не проще ли сохранить текстовое название цвета из коллекции WebЦвета ?
8. Андрей Карпов (karpik666) 362 26.06.15 04:11 Сейчас в теме
(7) bulpi, как я понял здесь можно в принципе сохранять не только цвета. Но и шрифт, размер шрифта и т.д
9. Юрий Тимофеев (Tatitutu) 3569 26.06.15 09:49 Сейчас в теме
(7) bulpi, Кому как удобно - у каждой задачи есть своя цель и чем больше спосбов ты знаешь и умеешь ими пользоваться тем лучше, тем гибче получается решение.
(8) Да вы совершенно правы. можно сохранять не только цвет (цвет текста, цвет фона, параметры шрифта (размер, наклон, жирность, зачеркнутый, штрифт), оформление , стиль и даже формулы!!! - но это тема отдельного семинарского занятия)
10. Сергей (Che) Коцюра (CheBurator) 3370 26.06.15 11:48 Сейчас в теме
блин, все поем про всякую старую фигню... мелкоподобное еще в 2006г написал http://infostart.ru/public/13799/
развития тема не получила у меня, - ибо неактуально - потому что всякие такие "разукрашки" и свистопрделки любят типовые ларечники (ларечники это не размер фирмы, а образ мыслей ;-) - применяется там, где автоматизацитя заключается в автоматизации по принципу "записная книжка" - что хотим то и пишем. Часто такие свистопрделки любят типа "топы" - двигатели продаж, вносящие "новые" веяния и обещающие начальствам златые горы и цепь на дубе том...
11. mclarry Максимец (mclarry) 249 08.07.15 19:06 Сейчас в теме
Использую для подобных нужд УсловноеОформление. Коллекция, сериализуется, хранит и оформление и отбор - лепота!
DrAku1a; Tatitutu; +2 Ответить