gifts2017

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

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

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

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

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

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

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

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

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

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

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

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

Отч - отчет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

ОБНОВЛЕНИЯ: 

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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


А можно поподробнее, не понял если честно, искал и не нашел...
11. Тима Осипов (net7wolf) 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) 26.10.11 00:01
Предложенный рабочий стол - для некоего обобщенного сферического в вакууме менеджера - нате вам все... пригодится там, где менеджер - и шнец, и жнец, и на дуде игрец... Минус, короче
15. Сергей (Seregalink) 26.10.11 00:33
Красочно и симпатично, но слишком громоздко!
16. Андрей Акулов (DrAku1a) 26.10.11 02:06
(14)(15) Я в названии указал слово "набросок" - это идея... А как оформить и какой функционал сделать далее - это уже Вам решать. В данном рабочем столе вынесено только самое основное (что мне потребовалось на обучении, да и то пару раз в меню лазил) - а в работе на конкретном предприятии - еще много пунктов можно добавить.
Можно, например, сделать несколько страниц и при открытии анализировать права и интерфейсы пользователей, и в зависимости от прав - показывать те или иные страницы.
В общем, идею кинул - дальше дело Вашей фантазии... ))

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

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

заменить обработку "РабочееМестоМенеджераПоПродажам" этой?
18. Андрей Акулов (DrAku1a) 26.10.11 08:11
(17) Можно и так. Теряем обработку правда... При обновлении тогда не обновлять просто ее. И... по-моему, она открывается после всяких там информационных окон (описание конфигурации, быстрое освоение и т.п.) - тогда при запуске наш рабочий стол окажется поверх всех окон - это не очень удобно...
19. Александр (alexkl) 26.10.11 09:22
От удобст никто обычно не отказывается, но понимание их разные.
20. sound sound (sound) 26.10.11 09:29
Полезная обработка или нет могут сказать те, кто будет с ней работать. Мне же вид такого рабочего стола напомнил одну забавную историю, баян конечно, но смешно. Во времена виндовз 2000 у одного неискушенного в компах сотрудника весь рабочий стол был похож на помойку, в которой соответственно только он один понимал что и где, и ему конечно же было так очень удобно и хрен ты его переубедишь что так делать плохо. Ну сделали ему принт скрин, как обои на рабочий стол, а всю хрень с рабочего стола соответственно убрали. Как он матерился :)
21. Alex Koso (AlexKoso) 26.10.11 15:41
ну если речь зашла об аналогичном, обратите внимание на http://infostart.ru/public/22288/ плюсы: полный доступ к коду (все обработчики), конструктор, ограничение по пользователям и/или ролям и проч из режима предприятия.
22. Андрей Акулов (DrAku1a) 27.10.11 01:25
(21) Обратил. Вещь! Мощная и универсальная. Рекомендую всем заглянуть!
23. shaman (shamant) 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) 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) 08.11.11 08:10
(21) AlexKoso, Пользуюсь обработкой по ссылке уже давно, очень удобная! Рекомендую.
32. Alex Koso (AlexKoso) 08.11.11 14:56
(31)по той что я написал ссылку? :) сами ей пользуемся, пришлось допиливать немного но да, обработка тащит. Юзеры даже незнают не подозревают о главном меню, привыкли что всё нужное им - на рабочем столе. В РБД нормально обработка себя чувствует - настройки из центрального узла в подчиненные летают на ура.
33. Serheo Nikolis (Serheo) 10.11.11 00:46
Спасибо, опробую у себя. В аккурат редакция 10.3.6.8
34. Костя С (doom2good) 11.11.11 08:57
Выглядит нормально, но я бы не вкладками сделал, чтобы скрыть лишние функции. Да и в упр. форме на мой взгляд удобнее делать.
35. Алексей Аборин (commo) 11.11.11 11:37
Спасибо, очень удобно теперь.
36. Доржи Балбаров (Angeros) 14.11.11 10:15
А внешние обработки включенные в конфу в нем можно настроить чтобы открывались?
37. Андрей Акулов (DrAku1a) 14.11.11 10:26
Наcтройки в режиме "Предприятие" не предусмотрены. А вот программисту дописать под конкретную конфу - особого труда не составит...
38. Иван (Sairys) 16.11.11 13:09
Я так понимаю это только для 8.2 ?
39. Андрей Акулов (DrAku1a) 17.11.11 02:05
(38) Да. Разрабатывалось под 8.2, обычное (неуправляемое) приложение.
40. Евгений Юпринский (Evgeny2009) 11.12.11 13:37
А можно мне на sotikom@bk.ru отправить? А то "+" нехватает! За обработку респект! А в 1С Комплексная будет работать?
42. Михаил Иванов (wwizard) 07.01.12 05:08
можно ещераз поподробнее как встроить форму чтобы она открывалась вместе с конфигурацией?
43. Андрей Акулов (DrAku1a) 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) 08.01.12 04:58
(45) При замене обработки на внешнюю - меняется и ее Имя. Нужно вернуть стандартное имя РабочееМестоМенеджераПоПродажам а синоним можно написать - "Рабочий стол". См. свойства обработки - или на первой странице, если ее открыть в конфигураторе.
47. Олег Тымко (olegtymko) 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) 09.01.12 14:55
(49) можете сами сделать. Посмотрите как называется документ в конфигурации, далее копируете один из ярлыков и нахываете его (имя) докИмяОбъекта, например, "докЧекККМПродажа".
52. Михаил Иванов (wwizard) 09.01.12 15:33
(51)
далее копируете один из ярлыков


Это где, вернее откуда его копировать? и куда?
53. Андрей Акулов (DrAku1a) 09.01.12 15:36
54. Михаил Иванов (wwizard) 09.01.12 21:09
ничего не получилось, весь день про..мучался. пожалуйста, если Вам не сложно, помогите страждущему
55. Павел (dardroze) 11.01.12 15:47
стало гораздо удобнее, спасибо!
56. Андрей Акулов (DrAku1a) 12.01.12 05:09
57. Михаил Иванов (wwizard) 12.01.12 19:44
58. Михаил Иванов (wwizard) 19.01.12 21:19
так как получится выслать?
59. Андрей Долгополов (bankir1982) 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) 05.06.12 02:53
(64) не планируются. а зачем?
66. Сергей Сергеев (SERJ_1CC) 09.08.12 15:20
Автору однозначно плюс, хорошая работа и действительно полезная. Обязательно скачаю, пригодится для пользователей!
67. Михаил Иванов (wwizard) 15.08.12 01:55
(16) DrAku1a, скажите, а ентот пример для того предприятия скачать можно? и возможно ли добавить ярлычки внешних обработок?
68. Андрей Акулов (DrAku1a) 15.08.12 02:15
(67) Этот пример выложить не имею права - он разработан для одного конкретного клиента на заказ. Ярлычки внешних обработок и отчетов добавить можете. Как это сделать описано в публикации, а именно, речь о префиксах "Воб" и "Вот".
69. Михаил Иванов (wwizard) 15.08.12 02:39
70. Михаил Иванов (wwizard) 15.08.12 02:39
(68) DrAku1a,

Воб
а что енто такое?
71. Андрей Акулов (DrAku1a) 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) 26.09.14 15:56
Подскажите как создать ярлык чтоб открывался не журнал заказов
А при нажатии открывался новый документ заказ покупалеля
75. Андрей Акулов (DrAku1a) 30.09.14 13:44
(74) Dubasov, в данной обработке - это не предусмотрено. Но, если Вы владеете базовыми навыками программирования - это можно легко реализовать: в процедуре-обработчике нажатия на кнопку добавить обработку нового типа (первые три буквы имени кнопки) - например "СЭС" - создать элемент справочника или "СНД" - создать новый документ. Далее - реализовать обработчик:
Справочники[ИмяОбъекта].СоздатьЭлемент().ПолучитьФорму().Открыть()

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

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