Тот самый Рабочий стол. Возрождение легенды

30.11.18

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

Невероятный инструмент построения адаптивных интерфейсов.

Если помните, в кастомизации на лету я рассказывал про такой инструмент, как "Рабочий стол". На днях ему стукнуло 6 лет, но ничего более приличного для построения интерфейсов в 1С так и не появилось. Поэтому я решил его возродить, а заодно - написать более подробную статью. Считайте, что похвастаться. Ну и показать новые направления развития, возможности 1С, бла-бла-бла.

Рабочий стол - это инструмент для построения адаптивных интерфейсов. В любой системе на платформе 1С:Предприятие версии 8.2 и выше.

Зачем и почему

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

А что не так тогда? Зачем городить какой-то рабочий стол?

Если не лень, перечитайте предыдущий абзац. Что видите? Что рисуют типовые интерфейсы 1С? Если лень, то я просто отвечу: они рисуют навигацию.

В аэропортах, например, тоже рисуют навигацию, которой потом гордятся - любой человек, впервые оказавшийся в воздушной гавани, без особого труда найдет стойки регистрации, зону досмотра и туалет. Навигация для новых посетителей - важная и нужная задача, без грамотного ее решения возникнет коллапс. И в аэропорту, и в информационной системе на платформе 1С.

А если человек - не новый? Бухгалтер, например, или менеджер по продажам, диспетчер ПДО и т.д. Программа стоит давно, пользователи знают все, что им нужно, пользуются ограниченным количеством функциональности, и вряд ли что-то в ближайшее время поменяется. Им как быть?

В аэропорту такие люди - например, часто летающие бизнесмены или путешественники - вообще не смотрят на навигацию. Просто идут туда, куда им надо. Вы же бывали в аэропорту, и помните, как долго там надо идти? Это же процесс, иногда - весьма удручающий.

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

Если провести аналогию между 1С и аэропортом, то что получится? Купив ERP или УПП, вы получили в собственность аэропорт. Ну то есть не вы, наверное, а ваша компания, но не суть. Этот аэропорт спроектирован для всех, а пользуетесь только вы и ваши коллеги. Только представьте - корпоративный аэропорт!

Представили? Хорошо. Теперь вопрос: вам там все нравится? Нет желания, например, закрыть большинство терминалов, оставить один, чтобы не бегать по полчаса? Туалет разместить поближе к стойке регистрации? Не вплотную, а за углом, конечно. А напротив стойки поставить диванчики из ВИП-зала, чтобы не подниматься по лестнице.

И вообще, вместо огромного холодного здания, поставить маленький уютный домик, где все будет под рукой – регистрация, сдача багажа, диван для отдыха, табло с рейсами над головой, приятный ресторанчик, зарядка для телефона и wi-fi. Ну разве не прелесть?

Все, что вам нужно, уже есть в аэропорту. Только расположено не так, как надо вам, а так, как решили разработчики. Заодно натолкали кучу того, что вам не нужно. Поэтому неудобно и неуютно.

Так вот, рабочий стол - это и есть тот самый маленький уютный домик, который сделает из вашего «аэропорта на платформе 1С» приятный, удобный и симпатичный уголок. И, главное – индивидуально для каждого пользователя. Пусть у каждого будет свой аэропорт. Почему бы и нет?

Общий обзор

Пора нарисовать несколько картинок. Мы нарисовали демонстрационный рабочий стол в Бухгалтерии предприятия 3.0, вот как он выглядит. image

Человек заходит в программу и сразу видит то, чего ему интересно. Сначала – ссылки на документы и отчеты, которыми он хочет пользоваться чаще всего. Нажал на ссылку – перешел в список документов или форму отчета.

Дальше человек, зачем-то, хочет видеть несколько последних отгрузок. Ну вот нравится ему следить за реализациями, и все тут. И чтобы они раскрашивались – до 10 000 рублей пусть красными будут, до 100 000 рублей – синими, свыше – зелеными. Сегодня вот не очень удачный день, нет зеленых отгрузок… Нажал на ссылку – открылся документ.

И остатки денег сразу видеть хочет, чтобы не рыться по отчетам. Пусть на рабочем столе пишутся – отдельно по расчетным счетам, сгруппированные по банкам, а касса – одной строкой.

Но надо ведь не только последние отгрузки понимать, а еще и динамику? Пусть продажи по дням рисуются в виде красивого графика! С начала месяца, допустим. Тогда не упустишь негативного тренда.

А если человек – толковый главбух или заместитель? Надо же присматривать за бухгалтерами, чтобы минусов в оборотке не наделали, а то знаю я их… Пусть прямо на рабочем столе отчетик рисуется простенький, по активным счетам, со всей необходимой аналитикой. Увижу минус – накажу…

Пойдем на вторую закладку рабочего стола. image

Что у нас тут? Быстрый просмотр поступлений. Слева – список поступлений, справа – маленький отчетик, который показывает состав документа (товары, услуги, тара). Ставишь курсор на любой документ – отчетик перерисовывается. Не надо проваливаться в документы, рыскать по закладкам и проматывать таблицы.

Перейдем на третью закладку.

image

Что видим? Счета на оплату, в виде дерева. Первый уровень – счет, второй – номенклатура, цена, сумма. А чуть выше дерева – кнопка «Согласовать». Так уж получилось, что в нашей компании нужно согласовывать счета на оплату. Зачем куда-то ходить, искать и проверять? На рабочем столе видим несогласованные счета, выбираем нужные, жмем кнопку – и вуаля! Согласование свершилось.

А что на четвертой закладке?

image

Большая кнопка, что же еще. Что она делает? А какая вам разница =514;. Секрет.

А в чем фишка?

В чем фишка-то, спросит читатель? Наши программисты точно так же могут нарисовать такие закладки, с кнопками, ссылками и отчетами. Им только доступ дать в конфигуратор, и через пару дней будет готово.

Фишка в том, что все элементы рабочего стола нарисованы без использования конфигуратора. Знаете, как выглядит рабочий стол в конфигураторе? Вот так:

image

Рабочий стол не знает ничего о том, что ему придется нарисовать конкретному пользователю. Когда 1С запустится, тогда и узнает, и нарисует.

Все настройки рабочего стола и его элементов выполняются в режиме Предприятие. Демонстрационный стол, картинки с которого вы видите в этом материале, нарисован за 2 часа.

Основные возможности

Пробежимся по основным возможностям, которые нам дает рабочий стол. Их так много, что главная проблема – не забыть бы чего. Ну и новых идей – тьма.

Компоновка

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

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

Вот так выглядит настройка рабочего стола: image

Объединение рабочих столов

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

Элементы рабочего стола

Элементы рабочего стола – это такой справочник. Нарисовали один раз, например – диаграмму или динамический список, все настроили, и можете использовать в произвольном количестве рабочих столов.

Принципиально видов элементов семь: ссылка на метаданные, отчет, диаграмма, набор ссылок, динамический список, дерево, кнопка.

Ссылка на метаданные

Это самый простой вид элемента рабочего стола. Указывается объект метаданных – например, документ «Реализация товаров и услуг» или отчет «Оборотно-сальдовая ведомость» - и все, он попадет на рабочий стол в виде гиперссылки.

image

Можно добавить картинку, переопределить заголовок, изменить шрифт. При нажатии откроется соответствующая форма – список документов, форма отчета и т.д.

Кнопка

Тоже очень простой элемент, но понятный только программистам. Рисует на форме кнопку, под которой лежит команда, а в ней – написанный вами код. Можно выполнять на клиенте, можно – на сервере.

Команды – это такой справочник. Он используется не только для кнопок, но и для обработки нажатий на элементы других типов (об этом - ниже).

image

Код команд рабочего стола, как правило, связан с данными информационной базы (в отличие от команд, создаваемых в конфигураторе). Например, кнопка может создавать элемент справочника и заполнять его реквизиты определенными значениями. Где взять эти значения?

В конфигураторе вам пришлось бы или по коду искать, или городить специализированные хранилища предопределенных ссылок, или вообще константы делать. Здесь же вам в помощь таблица параметров (см. на скриншоте, внизу) – указываете имя параметра и значение (примитивы + любая ссылка), а в коде команды пользуетесь.

Отчет

Обычно руки сразу чешутся вывести на рабочий стол какой-нибудь типовой отчет. Но это – плохая мысль.

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

Поэтому в качестве источника отчетов используются схемы компоновки, лежащие в одноименном справочнике. Зачем вываливать всю оборотку, если человеку надо видеть только минусы? Зовем программиста, он за 5 минут пишет запрос на 10 строк, и перед нами – только минусы.

image

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

Диаграмма

Настраивается примерно так же, как отчет. Просто пишется схема компоновки, результат которой выводится в диаграмму. А дальше происходит магия.

Обычная диаграмма, сформированная компоновкой в виде табличного документа, выглядит страшно. Она не подстраивается под размеры экрана, вообще в него не влезает, и ничего с этим сделать нельзя – только двигая объект типа «Рисунок» кодом после формирования. Но живые люди так не делают.

Намного лучше выглядит диаграмма, нарисованная прямо на форме. Это – нормальный элемент управления, который умеет масштабироваться, не выглядит чужеродным и, вообще, довольно приятен.

Покажу на картинке, чтобы было понятнее. Слева – стандартная диаграмма в табличном документе, справа – диаграмма на форме.

image

Разве можно себе позволить пользоваться диаграммой слева? Нет, конечно. Только нормальной, масштабируемой и встроенной в форму диаграммой справа. На первом скриншоте была та же диаграмма – видели, какая она там маленькая, но при этом – вполне читаемая?

А упомянутая магия заключается в том, что рабочий стол сам вытаскивает диаграмму из табличного документа и переносит ее на форму. Серии, точки, оформление – все тащит, что плохо лежит. Программист просто пишет схему компоновки, а получает красивую диаграмму. Без рабочего стола такую пришлось бы кодом рисовать.

Динамический список

Принцип тот же, что в отчетах и диаграммах. Программист пишет схему компоновки – что хочет видеть в динамическом списке. Поля выбирает, сортировку, оформление, отборы и т.д. – все, что нужно для комфортного представления данных.

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

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

Дерево

Почти один в один – динамический список. Тоже схема компоновки, тоже копирование отборов и оформления, только на форме рисуется дерево, а не динамический список. А данные можно вывести любые.

В дереве, соответственно, можно делать группировку. Количество уровней вложенности не ограничено.

К дереву можно подключать команды (из справочника «Команды», упомянутого выше). Каждая команда нарисует кнопку на панели дерева (как на скриншоте страницы «Согласование»). При нажатии на кнопку в ее код передается контекст – дерево. Соответственно, программист может сделать с ним и его данными все, что взбредет в голову. Например, изменить реквизиты объекта, на который указал пользователь в дереве.

Набор ссылок

Самый полезный и интересный, на мой взгляд, элемент. Он позволяет вывести на рабочий стол ссылки на конкретные данные - например, на реализации, задачи, заказы и т.д.

Например, на первом скриншоте у нас были 5 последних реализаций:

image

Так вот, это и есть набор ссылок. Под ним лежит все та же схема компоновки, которая собирает нужные конкретному человеку данные и выводит на экран. Никаких табличных документов, расшифровок, кучи колонок и двойных щелчков мыши. Просто гиперссылка на нужный объект.

Набор ссылок особенно полезен, когда надо человеку вывести объекты, с которыми он должен чего-то сделать. Например, согласовать договор или заявку на расход денег. Программист пишет запрос, который фильтрует объекты по текущему пользователю, и вуаля – никуда не надо ходить, ничего фильтровать, искать и разбираться. Щелкнул по ссылке, сразу попал в объект, сделал то, что надо – и объект исчез с рабочего стола.

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

К набору ссылок можно подключать произвольное количество команд. Если команд нет, то по нажатию просто откроется объект, лежащий под ссылкой. Если команд несколько, то откроется выбор действия:

image

Что важно – в контекст выполнения команды передается не только ссылка, но и все поля, которые вернул запрос. На форме только ссылка, а запрос мог вернуть и состояние взаиморасчетов, и надежность контрагента, и наличие нужных товаров на складе – все, что угодно. И все это можно использовать внутри команды.

Прочие возможности

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

Для каждого рабочего стола можно включить автообновление с определенной периодичностью.

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

Варианты компоновки

Вариантов компоновки – бесчисленное множество, насколько хватит фантазии. Например, можно превратить рабочий стол в бешеный дашборд:

image

Диаграммы в платформе 8.3 выглядят очень симпатично, так что смотреть на такой рабочий стол весьма приятно, согласитесь. На рабочем столе они еще и на ощупь приятны – смотрите видео.

А если кто скажет, что все эти диаграммы – глупости для менеджеров, тому можно нарисовать простой, аскетичный рабочий стол, состоящий только из нужных документов, справочников и отчетов.

image

Развитие

У рабочего стола огромный потенциал развития. Там еще столько всего можно и нужно сделать, что хватит на несколько лет. И внутренняя оптимизация, и новые возможности, и фишки оформления.

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

См. также

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

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

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

6000 руб.

16.01.2015    61810    43    59    

80

Конфигурация Flowcon

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

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

10800 руб.

08.01.2019    48208    39    105    

113

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

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

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

5000 руб.

14.01.2016    54410    16    21    

42

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

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

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

2400 руб.

29.06.2020    16703    21    4    

35

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

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

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

27.12.2023    10750    750    elcoan    45    

106

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

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

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

2 стартмани

10.04.2023    9628    151    acces969    31    

118

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

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

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

1 стартмани

05.07.2022    3671    kalyaka    2    

27
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. seperblunt2 30.11.18 14:36 Сейчас в теме
Хвастаться дак хвастаться.
Мой ответ чемберлену по вопросу рабочих столов.

https://www.youtube.com/watch?v=0pvjI32t13k
rpgshnik; WellMaster; chebser; PLAstic; Lazio; Sla; lunjio; eeeio; muskul; Tavalik; triviumfan; Uncore; pm74; +13 Ответить
3. genayo 30.11.18 15:03 Сейчас в теме
(1) Ничто не ново под луной :)))
18. rovenko.n 05.12.18 11:24 Сейчас в теме
(3) накладная на отгрузку - это вы о чем? И ожно вопрос поконкретнее?
19. genayo 05.12.18 12:17 Сейчас в теме
(18) Вы похоже не тому и не в той теме ответили :)
20. rovenko.n 05.12.18 13:05 Сейчас в теме
(19) Да, а кнопки "удалить" я не вижу
4. pm74 199 30.11.18 15:08 Сейчас в теме
6. 1c-intelligence 12771 30.11.18 15:59 Сейчас в теме
(1) так чо, у кого круче?
7. seperblunt2 30.11.18 16:04 Сейчас в теме
(6) тут и спорить нечего ;)
8. triviumfan 93 30.11.18 16:21 Сейчас в теме
(7) Так у кого все-таки больше?)
TreeDogNight; +1 Ответить
2. pm74 199 30.11.18 14:47 Сейчас в теме
(0) неплохо , идея с использованием ДЗ для компоновки интерфейса мне нравится
5. pm74 199 30.11.18 15:16 Сейчас в теме
самое смешное , что в настоящий момент тоже что то такое запиливаю ))
вобще заметил что похожие разработки появляются на ис почти одновременно
9. triviumfan 93 30.11.18 16:23 Сейчас в теме
Эээ... так а пример реализации будет?
11. 1c-intelligence 12771 30.11.18 17:48 Сейчас в теме
(9) да, на след.неделе, когда определимся с форматом. Пока просто хвастаюсь.
21. user1075841 2 25.12.18 07:03 Сейчас в теме
(11) Как бы неделя прошла, а примера все нет....
22. 1c-intelligence 12771 25.12.18 07:18 Сейчас в теме
10. yyv-911 30.11.18 17:25 Сейчас в теме
хорошо когда кто то такое оплачивает. У нас не взлетает.
Нужно здесь и сейчас. нам это не нужно.
Сейчас по этому же принципу реализованы права доступа, некоторые отчеты и наполнение форм.
Но дорого блин.
palsergeich; +1 Ответить
12. acsent 1199 30.11.18 18:34 Сейчас в теме
Под обычные формы была такая поделка
https://infostart.ru/public/22288/
Обычному пользователю все равно такое не дашь. Он сам ничего не настроит.
А если программить, то не факт что через конфигаратор сложнее
JohnyDeath; CSiER; +2 Ответить
13. MarryJane 31 30.11.18 19:43 Сейчас в теме
Мне кажется мониторинг целевых показателей может выполнять тоже самое
14. insurgut 207 01.12.18 09:27 Сейчас в теме
(0)
Настройки рабочих столов хранятся в одноименном справочнике.

Конфигурацию необходимо снимать с поддержки для использования этой обработки? Сохранять/переносить/загружать настройки между однотипными конфигурациями можно?
15. 1c-intelligence 12771 01.12.18 10:25 Сейчас в теме
(14) снимать с поддержки надо.
Переносить можно - либо элементы целиком, либо схемы компоновки.
16. user1043867 03.12.18 18:50 Сейчас в теме
(15) Может расширением реализовать? Вообще круто будет)
17. 1c-intelligence 12771 03.12.18 19:00 Сейчас в теме
(16) далеко не всем подойдет
23. zavbak 19.07.19 06:45 Сейчас в теме
Так сама разработка то где?
Hogyoku; John_Galt; Xershi; +3 Ответить
24. Kontakt 109 26.01.23 10:46 Сейчас в теме
а где кнопка "Скачать" ?
25. 1c-intelligence 12771 26.01.23 12:27 Сейчас в теме
Оставьте свое сообщение