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 Платные (руб)

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

6000 руб.

16.01.2015    61797    43    59    

80

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

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

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

5000 руб.

14.01.2016    54403    16    21    

42

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

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

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

2400 руб.

29.06.2020    16698    21    4    

35

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

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

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

27.12.2023    10738    750    elcoan    45    

106

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

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

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

2 стартмани

10.04.2023    9617    151    acces969    31    

118

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

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

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

1 стартмани

05.07.2022    3666    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12082    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. MarSeN 984 25.03.13 12:40 Сейчас в теме
Странно, что нет никаких отзывов. Мне показалось что возможность добавить свои пункты меню в главное меню 1С как минимум должна была вызвать дискуссию хорошо это или плохо.
2. Abadonna 3958 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 3958 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 12771 29.03.13 07:39 Сейчас в теме
Забавно. А какой практический смысл?
Новиков; +1 Ответить
15. MarSeN 984 29.03.13 09:06 Сейчас в теме
(14) zaebunga
в 13 Volfy слёту смысл нашел )
1 как быстрый запуск каких либо форм или обработок.
2 в обработке доступны все окна так что можно настноить обмен информацией м/у ними, как вариант буфер обмена. (замечу что это без модификации конфы)
это на вскидку
16. 1c-intelligence 12771 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 12771 29.03.13 09:43 Сейчас в теме
(17) как направление развития оно понятно. Но вопрос сразу возникает - как это поможет пользователю, в решении каких задач. Поэтому и спросил - может вы уже нашли ответ, или примеры использования есть. Не разработчиком, а пользователем именно.
19. MarSeN 984 29.03.13 10:01 Сейчас в теме
(18) zaebunga
я вроде бы уже объяснил....
мне кажется что вопрос какой-то некорректный. Это то же самое что спросить как "поможет" пользователю платформа 1С без конфы - да никак. Пока разработчик не придумает чего нибудь чтоб пользователю было "удобно".
Я же не готовое решение публикую а механизм при помощи которого Вы можете добавить в интерфейс сбои (1С не дает возможности добавить в главное меню свои пункты) "бантики"
20. 1c-intelligence 12771 29.03.13 10:13 Сейчас в теме
(19) Да нормальный вопрос, вы его в штыки просто восприняли.

Вы сделали нормальную штуку, но было бы еще интереснее, если бы дали рекомендации по использованию. Сказали, чем и кому она поможет.
21. MarSeN 984 29.03.13 10:22 Сейчас в теме
(20) zaebunga
Вам показалось. Я п15 описал направления. в п17 даже выложил пример. Думаю когда у Вас появится определенная проблема которую Вы не сможете решить штатным способом - Вы вспомните про данный подход.
Если принять во внимание что данный механизм работает без изменения конфы, то это универсальное решение.
PS: если я Вас обидел - то сори
22. 1c-intelligence 12771 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. Филин 362 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 991 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 для создания меню? Заранее благодарен.
Оставьте свое сообщение