v8.2 Управляемые формы: добавляем произвольное пользовательское меню в основное меню 1С без модификации конфигурации.

24.03.13

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

Часто ли Вы задумывались о возможности создания собственного подменю в основном меню 1С?
Часто ли Вам приходилось отказываться от "красивого" решения Вашей задачи без вышеупомянутой возможности?
Вашему вниманию предлагается технология, дающая возможность добавить подменю в главное меню 1С 8.2 УФ, полностью сформированное "обычным" способом.

Скачать исходный код

Наименование Файл Версия Размер
Пользовательское меню в главном окне.
.epf 44,57Kb
70
.epf 44,57Kb 70 Скачать

Отступление.

Более 7 лет назад я эксперементировал над 1С 7.7 в части объединения нескольких форм в одну. Как оказалось достаточно было переназначить родителя "подложки" (окна, на котором расположены элементы) одной формы на гравное окно другой, чтобы обе формы заработали в одном окне без потери функционала и "вылетов" системы. Мысли о том, что что-то подобное можно сделать в 8.2 натолкнули меня на экперименты в этой области. 

Как это работает?

К статье прикреплена обработка, в которой есть 2 формы. Первая форма "Форма" - основная. Она вызывает форму, на которой располагается меню, и при помощи ВК, выполненной на технологии NativeAPI (спасибо большое Александру Соломатину за его труды и статью "ВК NativeAPI на Delphi и FreePascal", на базе которой и была написана компонента), переопределяет родителя для подменю в ФормаМеню на командную панель главного окна 1С, после этого скрывает (делает невидимым) окно обработки. Для поиска подменю я использовал опыт, опубликованный уважаемым Abadonna в статье "Иерархия окон в 1С 8.2", которая сэкономила кучу времени на решении поставленной задачки.

Для того чтобы сформировать собственное меню, достаточно в форме обработки "ФормаМеню" внести изменния в группу "Подменю". Обработка событий комманд, добавленных подменю, производится типовым способом, т.е. как в обычной форме. По сути, это и есть обычная форма с той лишь разницей, что ее подменю вынесено из формы.

Обработку можно встроить в конфигурацию. Для этого:

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

 

Существующие ограничения и неудобства

  1. Не совсем красиво отображается кнопка подменю  (частично накрывает вторую иконку и серый фон).
  2. На форме "ФормаМеню" нельзя менять ничего, кроме состава группы "Подменю". По сути, ничего другого и не нужно.  
  3. Окно формы видно в списке окон 1С и его можно закрыть.
  4. При инициализации меню возможно будет заметно открытие формы обработки.

   

См. также

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

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

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

2400 руб.

29.06.2020    17280    23    4    

37

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

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

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

27.12.2023    11832    779    elcoan    47    

109

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

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

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

2 стартмани

10.04.2023    10330    157    acces969    31    

120

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

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

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

1 стартмани

05.07.2022    4280    kalyaka    4    

31

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

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

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

6000 руб.

18.01.2022    9163    1    2    

6

Программный интерфейс для доработки форм

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    10170    AtamanovYS    19    

142
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MarSeN 984 25.03.13 12:40 Сейчас в теме
Странно, что нет никаких отзывов. Мне показалось что возможность добавить свои пункты меню в главное меню 1С как минимум должна была вызвать дискуссию хорошо это или плохо.
2. Abadonna 3961 25.03.13 17:16 Сейчас в теме
(1)
Странно, что нет никаких отзывов

Ха! Привыкай. Вот если бы ВПФ, подздравлялка или отчет по дням рождения сотрудников - тогда бы плюсами да откликами засыпали :))))))))))))))
3. MarSeN 984 25.03.13 17:33 Сейчас в теме
4. MarSeN 984 26.03.13 17:51 Сейчас в теме
(2) Abadonna
Ты как в воду глядел ))
http://infostart.ru/public/179730/ отчет по д.р. сотрудников для зуп. Интересно будет сколько статья наберет
8. An-Aleksey 64 27.03.13 17:24 Сейчас в теме
(1) действительно странно...
Обычно заглядываю в комменты чтобы понять стоящая вещь или очередной фейлд.
А тут по теме нулю. Неужели придется качать и тестить? )))
Ставлю плюс авансом ;)
9. MarSeN 984 27.03.13 17:43 Сейчас в теме
(8) An-Aleksey
Спасибо )
Я вот не понял - почему эта статья только пару часов побыла внизу в новых статьях и не попала "на вверхний этаж". Я такой реализации еще невидел. Неужели никому не интересно?
32. PlatonStepan 38 02.04.13 02:56 Сейчас в теме
(1)
Добрый день, в своё время для обычного приложения выкладывал подобное самособирающееся меню http://infostart.ru/public/77388/ .
Отзывов было не густо :)
Есть мнение, что полезность инструмента смогут оценить только закоренелые педанты, те кто ведут ежедневники, фиксируя каждый чих. Это всё к сожалению, потому что потенциал, на мой взгляд, имеется.
33. MarSeN 984 02.04.13 09:25 Сейчас в теме
(32) Jogeedae
Интересная разработка. В чем-то похожи. Ваша сделана как конструктор для пользователя и выполняет роль альтернативного пользовательского меню - навигация по конфигурации.
то что я хотел заложить в свою "модель" это взаимодействие ч/з меню с контекстами активных окон
(я в последнее время заморочился на минимизации изменений типовых конфигураций)
5. Abadonna 3961 27.03.13 11:56 Сейчас в теме
Интересно будет сколько статья наберет

А уж почти тебя догнала. Скоро перегонит :)))
6. MarSeN 984 27.03.13 12:13 Сейчас в теме
(5) Abadonna
Думаю за 50 перевалит )
7. пользователь 27.03.13 16:33
Сообщение было скрыто модератором.
...
10. An-Aleksey 64 27.03.13 17:54 Сейчас в теме
Если ты про общую рассылку, то там статьи располагаются в обратном хронологическом порядке от даты первой публикации.
Т.е. чтобы попасть в топ, нужно было опубликовать вчера во второй половине дня :)
11. MarSeN 984 27.03.13 18:17 Сейчас в теме
(10) An-Aleksey
Это дельный совет - спасибо.
Я про первую страницу сайта
12. unknownN 27.03.13 23:31 Сейчас в теме
весьма интересно, спасибо
13. Volfy 65 28.03.13 10:05 Сейчас в теме
Классная вещь =) Оооочень полезная, сразу же воткнул туда кучку пунктов по настройке собственных доработок. Спасибо автору =)
14. 1c-intelligence 12808 29.03.13 07:39 Сейчас в теме
Забавно. А какой практический смысл?
Новиков; +1 Ответить
15. MarSeN 984 29.03.13 09:06 Сейчас в теме
(14) zaebunga
в 13 Volfy слёту смысл нашел )
1 как быстрый запуск каких либо форм или обработок.
2 в обработке доступны все окна так что можно настноить обмен информацией м/у ними, как вариант буфер обмена. (замечу что это без модификации конфы)
это на вскидку
16. 1c-intelligence 12808 29.03.13 09:18 Сейчас в теме
(15) я имел в виду практический смысл для пользователей. Видите ли вы пути применения этой доработки как части системы? Для каких пользователей и задач?
17. MarSeN 984 29.03.13 09:31 Сейчас в теме
(16) zaebunga
а чем буфер обмена не подходит? мне кажется что это как раз пользовательская фича.
пример в приложении.
тестил на УТ11 - работать будет на любой УФ конфе
1. открываете 2 документа с таб частями товары
2. меню - вн. буфер обмена
3. в форме - встаете в списке на один документ - копировать. Потом на другой - вставить.

это просто пример а не боевая обработка. делал тоб понять возможности и наметить пути развития
Прикрепленные файлы:
Меню3.epf
18. 1c-intelligence 12808 29.03.13 09:43 Сейчас в теме
(17) как направление развития оно понятно. Но вопрос сразу возникает - как это поможет пользователю, в решении каких задач. Поэтому и спросил - может вы уже нашли ответ, или примеры использования есть. Не разработчиком, а пользователем именно.
19. MarSeN 984 29.03.13 10:01 Сейчас в теме
(18) zaebunga
я вроде бы уже объяснил....
мне кажется что вопрос какой-то некорректный. Это то же самое что спросить как "поможет" пользователю платформа 1С без конфы - да никак. Пока разработчик не придумает чего нибудь чтоб пользователю было "удобно".
Я же не готовое решение публикую а механизм при помощи которого Вы можете добавить в интерфейс сбои (1С не дает возможности добавить в главное меню свои пункты) "бантики"
20. 1c-intelligence 12808 29.03.13 10:13 Сейчас в теме
(19) Да нормальный вопрос, вы его в штыки просто восприняли.

Вы сделали нормальную штуку, но было бы еще интереснее, если бы дали рекомендации по использованию. Сказали, чем и кому она поможет.
21. MarSeN 984 29.03.13 10:22 Сейчас в теме
(20) zaebunga
Вам показалось. Я п15 описал направления. в п17 даже выложил пример. Думаю когда у Вас появится определенная проблема которую Вы не сможете решить штатным способом - Вы вспомните про данный подход.
Если принять во внимание что данный механизм работает без изменения конфы, то это универсальное решение.
PS: если я Вас обидел - то сори
22. 1c-intelligence 12808 29.03.13 10:56 Сейчас в теме
(21) вы сами спрашивали выше "неужели никому не интересно?".

А оно как получается. Вы выложили инструмент, но не рассказали что с его помощью делать. Отсюда и реакция - "прикольно, и чо?".

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

Не воспринимайте это в штыки, это проблема большинства разработчиков, и моя тоже. Сделать инструмент, но не придумать назначение и методику использования. Попробуйте поразмыслить над областями применения и реальными задачами, тогда станет значительно интереснее. Представьте себя клиентом, в которому пришел разработчик и принес этот инструмент.
корум; MarSeN; +2 Ответить
23. MarSeN 984 29.03.13 11:11 Сейчас в теме
(22) zaebunga
Я считаю что Вы правы "Сделать инструмент, но не придумать назначение и методику использования." поставил + за это.
но как я уже писал - это именно инструмент, а если сравнивать, то это не дрель а скорее мотор который потом надо вставить в дрель.
Спасибо за отзыв. Он ценен для меня
24. serg_gres 153 29.03.13 12:32 Сейчас в теме
Интересно.
За идею и подход - "+".
Может быть где-нибудь (когда-нибудь) и пригодилось, но "Окно формы видно в списке окон 1С и его можно закрыть." - заметно снижает ценность данной разработки.
25. MarSeN 984 29.03.13 12:45 Сейчас в теме
(24) serg_gres
К сожалению на данный момент ничего с ним сделать не могу. Даже если у подложки переопределен родитель (не родное окно) то при закрытии родного окна закрываются все его элементы. буду думать что с этим сделать.
если бы в обработке перед закрытием можно было понять что главное окно 1С закрывается, тогда можно было бы отказ возвращать если 1С - работает а форму кто-то пытается закрыть
26. Новиков 292 29.03.13 15:33 Сейчас в теме
Прикольная штука. Но бесполезная, да :)
27. MarSeN 984 29.03.13 15:51 Сейчас в теме
(26) Новиков
Любое мнение для меня важно.
28. Филин 366 30.03.13 17:32 Сейчас в теме
Штука интересная, поставлю плюс.
В свое время искал способ воткнуть вызов обработки в стандартное меню (в раздел "Справка"), чтобы пользователь всегда с минимальным количеством кликов мог до нее добраться. В управляемом интерфейсе задача оказалась нерешаемой )

Но есть подозрение, что она нарушает лицензионное соглашение. Компания 1С крайне ревностно относится к работе с окном приложения и такие трюки, насколько я помню, запрещены ЛС.
29. MarSeN 984 30.03.13 18:01 Сейчас в теме
(28) Филин
Да, это действительно трюк, но, надеюсь 1С не будет против... Конечно этот способ не "1С совместимо" но раз нам не дают всех возможностей для интерфейса - то мы их возьмем сами.
По крайней мере 1С может обратить внимание на такие вещи и будет дорабатывать интерфейс в нужном направлении. )
30. ITEkb 01.04.13 19:26 Сейчас в теме
Не по теме, но, раз уж в описании об этом сказали.. можно чуть подробнее по 7.7, как формы объединяли?
31. MarSeN 984 01.04.13 20:16 Сейчас в теме
(30) в форме приемнике создавал группу с определенным заголовком, потом в после открытия формы приемника открывал форму источник и подменял у подложки источника родителя на группу, найденную по заголовку . Форму источника убивал ч/з апи
34. yuraos 1000 02.04.13 13:11 Сейчас в теме
Плюс за попытку сделать УИ чуть "управляемей" и привлекательней.

Как я понимаю, для управляемого интерфейса актуально
написание аналога ВК FormEx.dll для его ...
... мягко говоря улутшения.
---
PS:
На скриншотике "мнею" исправить бы на "меню"
:)
Прикрепленные файлы:
36. MarSeN 984 02.04.13 13:37 Сейчас в теме
(34) yuraos
Спасибо за отклик и плюс.
Да, при всей управляемости УФ есть определенные недочеты.
Я на данном этапе развиваю компоненту и форма "меню" будет лишь как дополнение и точка входа для определенных действий над формами

Если коротко, то на данном этапе разработки (этого нет в данной, выложенной в статье обработке) "меню" уже контролирует активное окно и можно к примеру произвести манипуляцию именно над активным окном.

В течении недели или к началу новой планирую выложить триальную бетту для ознакомления с базовым функционалом.
в нем будет:
1. Пример реализации быстрого поиска в списках (на примере подбора номенклатуры) по первым символам как в 8.1 (или в окне сообщения 8.2 УФ)
2. Пример копи/паста из одного документа (текущей позиции списка документов) в другой (на примере таб. части товары)
3. Пример вставки печати в любую активную открытую печ. форму.

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

Собственно это планы на ближайшее будущее.

По скриншоту ) спасибо - это моя болезнь. но пока публикация на виду - не хочу редактировать ее так как она пропадет. Хотелось бы привлечь больше умов к открывающимся возможностям )
Спасибо
35. kredko 20 02.04.13 13:30 Сейчас в теме
Ошибка в тексте "на гравное окно".
37. MarSeN 984 02.04.13 13:39 Сейчас в теме
35. kredko
) спасибо, исправлю попозже. Причину описал в п36
38. aseverin 77 07.04.13 15:58 Сейчас в теме
(37) Есть своя конфигурация. Поставил заказчик перед фактом - переносим сервера. Пришлось срочно допиливать тонкий клиент... Использовал твою публикацию для переноса неуправляемого "Запуска отчетности" (отчеты в справочнике, переносить в подсистемы нерентабельно, много пересечений по доступам...). За разработку респект, пригодилась и начинает работать.... Это к вопросам зачем...

PS По поводу глюков - иногда открывается отдельная управляемая форма (не подвязывается к задуманному месту) Причину не понял, сообщаю скорее для информации.
39. MarSeN 984 08.04.13 15:42 Сейчас в теме
(38) aseverin
Спасибо за отзыв и боевое применение разработки.
странно, что меню не всегда цепляется. А когда открывается отдельная форма, там меню есть со стрелкой? или она без меню открывается.
И еще вопрос. Режим используете с закладками или отдельные окна?
40. aseverin 77 08.04.13 15:57 Сейчас в теме
(39) Если не на месте, то форма открывается в правом нижнем углу в "свернутом" виде. Если ее развернуть - меню со стрелкой есть и работает. У себя использую режим закладок, глюк ловил, у одного из пользователей вроде бы режим окон, но не на 100% уверен.
41. MarSeN 984 08.04.13 16:04 Сейчас в теме
(40) aseverin
странное поведение, а при открытии обработки есть еще какие-нить открытые "окна"?
у меня просто такой глюк не выскакивает, при том что я активно тестирую "продолжение" этой обработки (описал в п36)
42. aseverin 77 08.04.13 16:30 Сейчас в теме
(41) нет. Только рабочий стол с двумя отчетами и списком документов. Кстати, почти у всех такое поведение отработало при первом старте обновленной конфигурации с "меню". Определил для себя как глюк при регистрации компоненты, но мало ли...
43. MarSeN 984 08.04.13 16:37 Сейчас в теме
(42) aseverin
Спасибо, буду думать
44. aseverin 77 08.04.13 23:09 Сейчас в теме
(43) Пришлось поработать дома, вот так выглядит первый запуск конфигурации с меню на свежем компе. Может я чего не так сделал...
Забыл развернуть, но кнопка там точно есть ;). находил ее ранее ;)
Прикрепленные файлы:
45. MarSeN 984 08.04.13 23:43 Сейчас в теме
(44) aseverin
Спасибо за скриншот. я подумаю как можно отловить этот баг, потому что у меня его нет(.
46. aseverin 77 16.04.13 10:49 Сейчас в теме
(45) привет. Дошли руки до проверки версии с задержкой. Вроде бы все работает без збоев ;)
47. MarSeN 984 16.04.13 10:59 Сейчас в теме
(46) aseverin,
Спасибо огромное. Я обязательно к след. неделе учту эту ошибку и выложу обновление меню, и учту ее в разработке http://infostart.ru/public/182442/ "ExtEventsFrm: API для реализации быстрого (по первым символам) поиска в списках 1С 8.2 УФ и предоставления контроля над текущей формой (без модификации конфигурации)" так как основа у них одна.
48. aseverin 77 26.10.16 15:21 Сейчас в теме
Добрый день. Пользуюсь данной разработкой уже года 3, реализовал вызов отчетов... мы как то списывались на эту тему.

Проблема в том, что при переходе на 8.3.9 компонента не подключается, не могли бы помочь...

заранее благодарен, с ув. Северин Александр
49. simikill 20.09.17 15:16 Сейчас в теме
Доброго времени суток. Можете поделиться исходниками вашей dll для создания меню? Заранее благодарен.
Оставьте свое сообщение