Рабочий стол для УТ 10.3 (набросок)

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

Обучаясь в школе - решая практические задачи по УТ 10.3 обнаружил неудобство использования меню и стандартного решения "Панель функций" - по сравнению с рабочим столом, например в БП 1.6 и БП 2.0. Потому сразу был написан предлагаемый набросок...

Обучаясь в школе - решая практические задачи по УТ 10.3 обнаружил неудобство использования меню и стандартного решения "Панель функций" - по сравнению с рабочим столом, например в БП 1.6 и БП 2.0. Потому сразу был написан предлагаемый набросок... Решение задач с использованием данной обработки значительно ускорилось.

Файл открывался как внешняя обработка, но можете включить его в состав конфигурации и открывать форму в процедуре ПриНачалеРаботыСистемы.

Для тех, кто дорабатывает рабочий стол "Под себя": 

Каждый "ярлык" на рабочем столе - это элемент управления "надпись", с установленным в истина свойством "гиперссылка", обработчик события "Нажатие" этой надписи - процедура "ОткрытьОбработку".

Для создания своей кнопки можно просто скопировать существующую и переименовать ее по правилу:

Первые три буквы имени "ярлыка" - префикс, они указывают тип открываемого объекта:

Кон - константы 

Спр - справочник

Док - документ 

Отч - отчет

Обр - обработка

Рсв -  регистр сведений

Рег - регистр накопления

Остальная часть имени "ярлыка" - ИмяОбъекта, она должна соответствовать имени объекта как оно задано в конфигураторе, например СпрНоменклатура.

Цифры, стоящие в конце имени объекта отсекаются, например ярлык с именем "СпрНоменклатура1" откроет справочник "Номенклатура", а не "Номенклатура1" (такой механизм именования позволяет на одной форме создать несколько ярлыков на один и тот-же объект).

Дополнительно реализованы обработки префиксов: 

Веб - открыть интернет-страничку (во встроенном браузере).

ссылку на интернет-ресурс нужно указать в тексте подсказки.

Код - вызвать функцию глобального или общего модуля

ИмяОбъекта (оставшаяся часть имени ярлыка) - это имя вызываемой функции или процедуры глобального модуля или Общего модуля. Функция должна быть объявлена без параметров.

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

Например: ярлык с именем "КодУниверсальныеМеханизмы_ОткрытьСписокВнешнихОбработок" откроет список внешних обработок, сохраненных в УТ.

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

Вот - открыть сохраненный в базе внешний отчет (из справочника "Внешние обработки")

Реализованы два способа указания объекта:

1. Наименование элемента справочника "Внешние обработки" надо указать в комментарии к ярлыку (наименование должно точно соответствовать указанному в справочнике).

2. В качестве ИмяОбъекта (оставшаяся часть имени ярлыка) казать либо наименование, либо код, либо комментарий элемента справочника "Внешние обработки", при этом символи символы .,():; и кавычки надо заменит на символ нижнего подчеркивания.

Например ярлык "ВотУдаление_помеченных_объектов" предназначен для открытия внешней обработки, хранящейся в базе под именем "Удаление помеченных объектов".

Воб - открыть сохраненную в базе внешнюю обработку 

реализация аналогична префиксу "Вот".

Вы также можете самостоятельно расширить функционал обработчиков, отредактировав код процедуры "ОткрытьОбработку".

 

ОБНОВЛЕНИЯ: 

22.11.2011 - добавлен поиск элементов по наименованию (если элемент есть на форме - то он подсвечивается, если нет - предлагается открыть его). Подсветка элементов будет полезна при разработке громоздких и сложных рабочих столов.
 Также, при открытии формы делаются наективными элементы, доступ к которым запрещен (правами текущего пользователя).

Идея и реализация поиска основана на обработке "Телепат" Александра Медведева (aka anig99), //infostart.ru/public/88030/
должен отметить, что вышеуказанная обработка обладает гораздо большим функционалом по сравнению с поиском и вполне уместна в использовании - как дополнение.

31.07.2012 - для тех, кто доделывает эту обработку "Под себя": расширен функционал ярлыков. Теперь можно вызывать процедуры из общих модулей и глобального контекста, а также, открывать внешние обработки из справочника "Внешние обработки". Добавлено описание.

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

Наименование Файл Версия Размер
РабочийСтол.epf
.epf 42,93Kb
01.08.12
364
.epf 42,93Kb 364 Скачать
СтарыйРабочийСтол.epf
.epf 36,39Kb
01.08.12
111
.epf 36,39Kb 111 Скачать

См. также

Комментарии
1. Taras Варварич (itar59) 87 24.10.11 11:22 Сейчас в теме
гораздо удобнее и практичнее.
очень хорошо!!!
2. acherey 11 24.10.11 11:33 Сейчас в теме
Спасибо, стало гораздо удобнее...
3. Viktor Popov (1Viktor) 8 24.10.11 17:13 Сейчас в теме
Хороший рабочий стол - полезный.
При наведении на пункты всплывающие подсказки одинаковы - Открыть журнал "Путевые листы"
4. Ийон Тихий (cool.vlad4) 41 24.10.11 17:27 Сейчас в теме
Идея хорошая, я хочу такой же сделать, наверное картинки себе другие сделаю. +
5. Михаил Иванов (wwizard) 24.10.11 19:53 Сейчас в теме
Как включить его в состав конфигурации и открывать форму в процедуре ПриНачалеРаботыСистемы.?
6. Андрей Акулов (DrAku1a) 1188 25.10.11 02:24 Сейчас в теме
(3) Спасибо, исправил. Сделал заполнение комментариев программно.

(5) К сожалению, штатные средства УТ этого не предосматривают. Будем надеятся, 1С включит такую возможность в будущих релизах - чтобы дополнительную внешнюю обработку, зарегестрированную в соотв. справочнике, можно было открывать при старте системы (для этого в справочнике нужен флажок "Запускать при старте системы" - и соответствующий код в процедуре "ПриНачалеРаботыСистемы".
А пока что это можно сделать только в полной версии УТ (не базовой). При этом надо сначала включить возможность изменения конфигурации (что усложнит в будущем обновление).
Затем, в модуле обычного приложения (глобальном) - найти процедуру "ПриНачалеРаботыСистемы", и после строчки
ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить() = "");
вставить строку
Обработки.РабочийСтол.ПолучитьФорму().Открыть();
затем добавить обработку в конфигурацию под именем "РабочийСтол".
7. Taras Варварич (itar59) 87 25.10.11 14:18 Сейчас в теме
8. Андрей Акулов (DrAku1a) 1188 25.10.11 14:25 Сейчас в теме
(7) Тоже вариант... У меня есть еще рабочий стол, разбитый по страницам, с возможностью настройки страниц под конкретного пользователя (какие показывать, с какой начинать работу) - там тоже на многих вкладках вынесены списки документов... Но публиковать не могу - т.к. делаю для одной конкретной задачи.
9. Дмитрий Павлик (DimaP) 56 25.10.11 16:30 Сейчас в теме
10. Михаил Иванов (wwizard) 25.10.11 18:55 Сейчас в теме
DrAku1a пишет:
ПриНачалеРаботыСистемы


А можно поподробнее, не понял если честно, искал и не нашел...
11. Тима Осипов (net7wolf) 46 25.10.11 19:16 Сейчас в теме
для 8.1 сделай супер будет
12. Михаил Иванов (wwizard) 25.10.11 19:32 Сейчас в теме
так у меня, 8,2 УТ (только купил)
13. Илья Черных (Ильяххх) 25.10.11 20:56 Сейчас в теме
Симпатично. Полезная штука, надо прикрутить менеджерам. А то в меню от 1с они путаются.
14. Сергей (Che) Коцюра (CheBurator) 3370 26.10.11 00:01 Сейчас в теме
Предложенный рабочий стол - для некоего обобщенного сферического в вакууме менеджера - нате вам все... пригодится там, где менеджер - и шнец, и жнец, и на дуде игрец... Минус, короче
15. Сергей (Seregalink) 72 26.10.11 00:33 Сейчас в теме
Красочно и симпатично, но слишком громоздко!
16. Андрей Акулов (DrAku1a) 1188 26.10.11 02:06 Сейчас в теме
(14)(15) Я в названии указал слово "набросок" - это идея... А как оформить и какой функционал сделать далее - это уже Вам решать. В данном рабочем столе вынесено только самое основное (что мне потребовалось на обучении, да и то пару раз в меню лазил) - а в работе на конкретном предприятии - еще много пунктов можно добавить.
Можно, например, сделать несколько страниц и при открытии анализировать права и интерфейсы пользователей, и в зависимости от прав - показывать те или иные страницы.
В общем, идею кинул - дальше дело Вашей фантазии... ))

Вот вам пример моей реализации для одного конкретного предериятия...
Прикрепленные файлы:
17. Аркадий Кучер (Abadonna) 3659 26.10.11 08:03 Сейчас в теме
Затем, в модуле обычного приложения (глобальном) - найти процедуру "ПриНачалеРаботыСистемы", и после строчки
Код
ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить() = "");
вставить строку
Код
Обработки.РабочийСтол.ПолучитьФорму().Открыть();
затем добавить обработку в конфигурацию под именем "РабочийСтол".

________________
Если уж "колбасить" конфу, то не проще, имея уже готовый код в УТ:
Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(мТекущийПользователь, "АвтооткрытиеФормыРабочегоМестаМенеджераПоПродажамПриЗапускеПрограммы") = Истина 
	   И (Не ПервыйЗапуск) Тогда
		Обработки.РабочееМестоМенеджераПоПродажам.ПолучитьФорму().Открыть();
	КонецЕсли;
...Показать Скрыть

заменить обработку "РабочееМестоМенеджераПоПродажам" этой?
18. Андрей Акулов (DrAku1a) 1188 26.10.11 08:11 Сейчас в теме
(17) Можно и так. Теряем обработку правда... При обновлении тогда не обновлять просто ее. И... по-моему, она открывается после всяких там информационных окон (описание конфигурации, быстрое освоение и т.п.) - тогда при запуске наш рабочий стол окажется поверх всех окон - это не очень удобно...
19. Александр (alexkl) 26.10.11 09:22 Сейчас в теме
От удобст никто обычно не отказывается, но понимание их разные.
20. sound sound (sound) 519 26.10.11 09:29 Сейчас в теме
Полезная обработка или нет могут сказать те, кто будет с ней работать. Мне же вид такого рабочего стола напомнил одну забавную историю, баян конечно, но смешно. Во времена виндовз 2000 у одного неискушенного в компах сотрудника весь рабочий стол был похож на помойку, в которой соответственно только он один понимал что и где, и ему конечно же было так очень удобно и хрен ты его переубедишь что так делать плохо. Ну сделали ему принт скрин, как обои на рабочий стол, а всю хрень с рабочего стола соответственно убрали. Как он матерился :)
21. Alex Koso (AlexKoso) 17 26.10.11 15:41 Сейчас в теме
ну если речь зашла об аналогичном, обратите внимание на http://infostart.ru/public/22288/ плюсы: полный доступ к коду (все обработчики), конструктор, ограничение по пользователям и/или ролям и проч из режима предприятия.
22. Андрей Акулов (DrAku1a) 1188 27.10.11 01:25 Сейчас в теме
(21) Обратил. Вещь! Мощная и универсальная. Рекомендую всем заглянуть!
23. shaman (shamant) 4 27.10.11 01:51 Сейчас в теме
Спасибо, тоже попробуем...
+1
24. Сергей Средних (morpheus2) 27.10.11 10:18 Сейчас в теме
25. Серазм С (sserazm) 27.10.11 11:56 Сейчас в теме
полезная весчь, ускоряет работу
26. Алексей Булатов (rubelev) 31.10.11 18:38 Сейчас в теме
27. Игорь Сапрыгин (xalker) 42 01.11.11 12:17 Сейчас в теме
Благодарим-с! Пригодится :)
28. latrium (latrium) 02.11.11 23:54 Сейчас в теме
Жаль, а мы только на 11 УТ перешли. Но вам плюс за труды.
29. Андрей (andru_dv) 06.11.11 22:54 Сейчас в теме
30. Владимир Клименко (KliMich) 07.11.11 11:52 Сейчас в теме
Спасибо!
Даёшь каждому виду сотров по рабочему столу!
(в стиле 7 Ноября):)
31. Руслан Латыпов (levran) 193 08.11.11 08:10 Сейчас в теме
(21) AlexKoso, Пользуюсь обработкой по ссылке уже давно, очень удобная! Рекомендую.
32. Alex Koso (AlexKoso) 17 08.11.11 14:56 Сейчас в теме
(31)по той что я написал ссылку? :) сами ей пользуемся, пришлось допиливать немного но да, обработка тащит. Юзеры даже незнают не подозревают о главном меню, привыкли что всё нужное им - на рабочем столе. В РБД нормально обработка себя чувствует - настройки из центрального узла в подчиненные летают на ура.
33. Serheo Nikolis (Serheo) 10.11.11 00:46 Сейчас в теме
Спасибо, опробую у себя. В аккурат редакция 10.3.6.8
34. Костя С (doom2good) 5 11.11.11 08:57 Сейчас в теме
Выглядит нормально, но я бы не вкладками сделал, чтобы скрыть лишние функции. Да и в упр. форме на мой взгляд удобнее делать.
35. Алексей Аборин (commo) 11.11.11 11:37 Сейчас в теме
Спасибо, очень удобно теперь.
36. Доржи Балбаров (Angeros) 14.11.11 10:15 Сейчас в теме
А внешние обработки включенные в конфу в нем можно настроить чтобы открывались?
37. Андрей Акулов (DrAku1a) 1188 14.11.11 10:26 Сейчас в теме
Наcтройки в режиме "Предприятие" не предусмотрены. А вот программисту дописать под конкретную конфу - особого труда не составит...
38. Иван (Sairys) 16.11.11 13:09 Сейчас в теме
Я так понимаю это только для 8.2 ?
39. Андрей Акулов (DrAku1a) 1188 17.11.11 02:05 Сейчас в теме
(38) Да. Разрабатывалось под 8.2, обычное (неуправляемое) приложение.
40. Евгений Юринский (Evgeny2009) 56 11.12.11 13:37 Сейчас в теме
А можно мне на sotikom@bk.ru отправить? А то "+" нехватает! За обработку респект! А в 1С Комплексная будет работать?
42. Михаил Иванов (wwizard) 07.01.12 05:08 Сейчас в теме
можно ещераз поподробнее как встроить форму чтобы она открывалась вместе с конфигурацией?
43. Андрей Акулов (DrAku1a) 1188 07.01.12 06:11 Сейчас в теме
(42) можно. Есть два варианта:
1. Заменить данной обработкой существующую обработку "РабочееМестоМенеджераПоПродажам", если конечно ей никто не пользуется... В настройках пользователя (в меню: "Сервис-Настройки пользователя" - настройки текущего пользователя, или "Сервис - Пользователи - Список пользователей" - настройки всех пользователей) - установить галочку "Автооткрытие формы рабочего места менеджера по продажам при запуске программы" (можно вместо РабочееМестоМенеджераПоПродажам использовать ПанельФункций или БыстроеОсвоение).

2. Добавить в список внутренних обработок конфигурации, назвав ее скажем "МойРабочийСтол" и изменить код процедуры "ПриНачалеРаботыСистемы()" глобального модуля - добавив после
ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить() = "");
строку
Обработки.МойРабочийСтол.ПолучитьФорму().Открыть()


---

Если конфигурация стандартная и не изменялась - то надо предварительно включить в настройке поддержки возможность изменения конфигурации.
Внимание! Включение возможности изменения конфигурации - необратимо!
44. Михаил Иванов (wwizard) 07.01.12 11:05 Сейчас в теме
Спасибо. Буду пробовать.
45. Михаил Иванов (wwizard) 07.01.12 19:47 Сейчас в теме
(43) По первому варианту, ругается, на:
{МодульОбычногоПриложения(156)}: Поле объекта не обнаружено (РабочееМестоМенеджераПоПродажам)
Обработки.РабочееМестоМенеджераПоПродажам.ПолучитьФорму().Открыть();
46. Андрей Акулов (DrAku1a) 1188 08.01.12 04:58 Сейчас в теме
(45) При замене обработки на внешнюю - меняется и ее Имя. Нужно вернуть стандартное имя РабочееМестоМенеджераПоПродажам а синоним можно написать - "Рабочий стол". См. свойства обработки - или на первой странице, если ее открыть в конфигураторе.
47. Олег Тымко (olegtymko) 25 08.01.12 06:37 Сейчас в теме
спасибо, очень нужная вещь)
48. Михаил Иванов (wwizard) 08.01.12 10:11 Сейчас в теме
Спасибо, заработало, супер.
49. Михаил Иванов (wwizard) 09.01.12 13:19 Сейчас в теме
Скажите, случайно ли нельза в форму рабочего стола, в раздел продажи, добавить документ: "Чек ККМ продажа"?
50. valerka78 (S.V.Y) 09.01.12 13:39 Сейчас в теме
Плюс, спасибо за работу.
51. Андрей Акулов (DrAku1a) 1188 09.01.12 14:55 Сейчас в теме
(49) можете сами сделать. Посмотрите как называется документ в конфигурации, далее копируете один из ярлыков и нахываете его (имя) докИмяОбъекта, например, "докЧекККМПродажа".
52. Михаил Иванов (wwizard) 09.01.12 15:33 Сейчас в теме
(51)
далее копируете один из ярлыков


Это где, вернее откуда его копировать? и куда?
53. Андрей Акулов (DrAku1a) 1188 09.01.12 15:36 Сейчас в теме
54. Михаил Иванов (wwizard) 09.01.12 21:09 Сейчас в теме
ничего не получилось, весь день про..мучался. пожалуйста, если Вам не сложно, помогите страждущему
55. Павел (dardroze) 11.01.12 15:47 Сейчас в теме
стало гораздо удобнее, спасибо!
56. Андрей Акулов (DrAku1a) 1188 12.01.12 05:09 Сейчас в теме
57. Михаил Иванов (wwizard) 12.01.12 19:44 Сейчас в теме
58. Михаил Иванов (wwizard) 19.01.12 21:19 Сейчас в теме
так как получится выслать?
59. Андрей Долгополов (bankir1982) 10 27.01.12 14:26 Сейчас в теме
Спасибо. Я думаю нашим менеджерам это понравится, ибо стандартная обработка была убога. Еще бы чтобы можно было зайти в настройки и самому накидать ярлыки на раб стол - вообще было бы круто. Это чтобы менеджеры сами себе организовывали так как им удобно, а настройки например хранить в настройках пользователя.
С меня +
60. Илья Трошин (Troha) 02.02.12 12:39 Сейчас в теме
Отличная штука. Спасибо!
61. антон кривец (akril19811) 10.03.12 19:58 Сейчас в теме
63. Кирилл Раковский (RakovskiyK) 31.05.12 11:55 Сейчас в теме
давно думал о нечто подобном. бесподобно красивая обработка, на первый взгляд. + авансом.
А есть возможность распределять по ролям? чтобы одному сотруднику было доступны действия согласно его роли и не доступно то, что по роли не прописано? Если да - то апплодирую стоя и буду качать.
Просто шикарно!
64. Михаил Иванов (wwizard) 05.06.12 01:58 Сейчас в теме
65. Андрей Акулов (DrAku1a) 1188 05.06.12 02:53 Сейчас в теме
(64) не планируются. а зачем?
66. Сергей Сергеев (SERJ_1CC) 45 09.08.12 15:20 Сейчас в теме
Автору однозначно плюс, хорошая работа и действительно полезная. Обязательно скачаю, пригодится для пользователей!
67. Михаил Иванов (wwizard) 15.08.12 01:55 Сейчас в теме
(16) DrAku1a, скажите, а ентот пример для того предприятия скачать можно? и возможно ли добавить ярлычки внешних обработок?
68. Андрей Акулов (DrAku1a) 1188 15.08.12 02:15 Сейчас в теме
(67) Этот пример выложить не имею права - он разработан для одного конкретного клиента на заказ. Ярлычки внешних обработок и отчетов добавить можете. Как это сделать описано в публикации, а именно, речь о префиксах "Воб" и "Вот".
69. Михаил Иванов (wwizard) 15.08.12 02:39 Сейчас в теме
70. Михаил Иванов (wwizard) 15.08.12 02:39 Сейчас в теме
(68) DrAku1a,

Воб
а что енто такое?
71. Андрей Акулов (DrAku1a) 1188 15.08.12 03:00 Сейчас в теме

Вот - открыть сохраненный в базе внешний отчет (из справочника "Внешние обработки")

Реализованы два способа указания объекта:

1. Наименование элемента справочника "Внешние обработки" надо указать в комментарии к ярлыку (наименование должно точно соответствовать указанному в справочнике).

2. В качестве ИмяОбъекта (оставшаяся часть имени ярлыка) казать либо наименование, либо код, либо комментарий элемента справочника "Внешние обработки", при этом символи символы .,():; и кавычки надо заменит на символ нижнего подчеркивания.

Например ярлык "ВотУдаление_помеченных_объектов" предназначен для открытия внешней обработки, хранящейся в базе под именем "Удаление помеченных объектов".

Воб - открыть сохраненную в базе внешнюю обработку

реализация аналогична префиксу "Вот".
72. Михаил Иванов (wwizard) 15.08.12 03:06 Сейчас в теме
ок, спс, будем пробовать
73. cerena (an.azarova) 09.02.13 00:55 Сейчас в теме
Спасибо! Очень хорошая.... даже я не знакомая с конф-м могу настроить рабочий стол как мне нужно +100
74. Дмитрий Дубасов (Dubasov) 9 26.09.14 15:56 Сейчас в теме
Подскажите как создать ярлык чтоб открывался не журнал заказов
А при нажатии открывался новый документ заказ покупалеля
75. Андрей Акулов (DrAku1a) 1188 30.09.14 13:44 Сейчас в теме
(74) Dubasov, в данной обработке - это не предусмотрено. Но, если Вы владеете базовыми навыками программирования - это можно легко реализовать: в процедуре-обработчике нажатия на кнопку добавить обработку нового типа (первые три буквы имени кнопки) - например "СЭС" - создать элемент справочника или "СНД" - создать новый документ. Далее - реализовать обработчик:
Справочники[ИмяОбъекта].СоздатьЭлемент().ПолучитьФорму().Открыть()

или
Справочники[ИмяОбъекта].СоздатьДокумент().ПолучитьФорму().Открыть()

этот корд будет работать для обычных (неуправляемых) форм. Для управляемых потребуется иной код...
76. Алексей Егунов (Горыныч_Злой) 14.02.17 14:49 Сейчас в теме
Реально хорошая работа, жаль под 11_ю не продолжили.. :(