Компонента может быть полезной, программистам, использующим в решениях на 1С окна и диалоги других приложений Windows.
Например, при программном открытии документов MS Office или использовании диалогов, вызываемых из WSH, окно 1С может терять фокус или видимость. Вернуть их можно будет с помощью этой компоненты.
Компонента разработана по технологии Native.
Работает только в Windows с 1С v. 8.2 (обычное приложение, толстый и тонкий клиент управляемого приложения).
Пример использования (конфигурация) прилагается (обычное и управляемое приложение).
Методы компоненты
Метод | Русский синоним | Действие |
Minimize | Свернуть | Сворачивание окна в панель задач |
Maximize | Развернуть | Разворачивание окна во весь экран |
Hide | Скрыть | Сокрытие главного окна 1С |
Show | Показать | Показ главного окна 1С (после скрытия) |
ShowNormal | РазвернутьВОкно | Показ окна в неполноэкранном режиме |
MoveOnTop | ПереместитьНаПереднийПлан | Перемещение окна на передний план |
SetAlwaysOnTopOn | ЗакрепитьПоверхВсехОкон | Закрепление окна поверх всех окон (только для обычного приложения) |
SetAlwaysOnTopOff | СнятьЗакрепление | Снятие закрепления (только для обычного приложения) |
CloseMessages | ЗакрытьОкноСообщений | Закрытие окна сообщений |
CloseAllChildForms | ЗакрытьВсеДочерниеФормы | Закрытие всех дочерних форм главного окна 1С (только для обычного приложения) |
Не могу распаковать архив.
Выдает сообщение:
«Неизвестный метод в 1Cv8.1CD
Неизвестный метод в MWC.dll
Ошибка — сбой при операции»
(1) Spektr, добавил архив RAR.
Расширение функционала 1С — однозначно плюс.
Компонента работает правильно. Но столкнулся с таким моментом. Есть код (вызывается по доп. кнопке в примере):
Показать
Открывается документ Visio, копируется содержимое в буфер обмена для дальнейшей обработки, закрывается документ.
Фокус убегает на окно, открытое ПЕРЕД вызовом Главного Окна 1С. Методы компоненты MWC.dll отрабатывают, но не перемещают окно 1С на передний план. Скорее всего что-то в Windows сдвигается. Было бы здорово, поправить этот нюанс.
(3) koka, вечером попробую воспроизвести, доработаю.
(3) koka, попробуйте обновленную компоненту.
(5) Попробовал.
1. В XP: Первый раз основное окно 1С (вызванное из конфигуратора) переместилось на передний план после вызова и закрытия Visio. Однако после этого не получалось (кроме одного раза) разными ухищрениями: на переднем плане остаётся приложение, бывшее активным ДО вызова приложения на 1С. А на панели задач кнопка управления окном 1С помигала и осталась подсвеченной (просится нажать на неё).
2. В 7-ке: Работает стабильно. Может и первый вариант работал стабильно? Я не пробовал.
Выводы: Обработка хорошая, дорабатывать для ХР смысла видимо нет — особенности операционки.
Эх.. такое бы для подчиненных окон внутри самой 1с…
(6) koka, да, я ваш пример под Win7 тестировал. Чуть позже под XP попробую допилить…
Компонента обновлена. Добавлен метод для закрытия окна сообщений.
Люблю всякие интерфейсные фишки!
ВК FormEx.dll которая для 1с-7.7 ???
А нельзя как-нибудь еще управлять и внутренними окнами 1С-ки
наподобии
Меня в частности интерисует возможность изменения
места положения окна формы.
У форм есть свойства Ширина и Высота, которые можно изменять.
А вот свойств Лево и Верх к сожалению нет.
А так хочется иногда открыть форму в определенном месте,
например, выравнять по какому-нибудь элементу другой формы.
Помню, пару лет назад, скачал какую — то компоненту, которая позволяла управлять, к примеру, прозрачностью главного окна программы — шутковали у клиентов — бух базу открывает, а она на дисплее бледнеет и полностью растворяется:-)))))))))))))))))))))
Вот, как называется эта dll, запамятовал… Там ещё можно было вывести аналоговые часы на раб.стол 1с…
Если помнит кто эту компоненту, то как она называется?Отсюда и качал, по — моему, откуда — то…
(11) MiracleV8.dll
Добрый день! Есть вопросы по данной компоненте:
1) Кто-нибудь проверял работу данной ВК под ОС x64 ? Пробовал запустить на Server 2008 х64 — компоненту подключает, но не создает объект «Addin.MWC.MainWindowCommander», выдает ошибку «Тип не определен (Addin.MWC.MainWindowCommander)». На Windows 7 х32 все нормально работает.
Есть в планах у автора доработать компоненту для х64 систем ?
2) Вопрос автору, чем вызвано ограничение метода «SetAlwaysOnTopOn» только для обычного приложения ?
Есть возможность доработать для управляемого приложения ?
(13)
Использование этого метода становится неудобным в режиме предприятия, при использовании управляемого приложения, при установке свойства Сервис — Параметры — Режим открытия форм — В отдельных формах.
Работу компоненты под х64 проверю…
(13) Описанная вами проблема на Server 2008 х64 связана с отсутствием там библиотек среды MS Visual Studio, используемых в компоненте.
Распространяемый пакет Visual C++ ,
Для решения проблемы либо установите
либо скачайте вариант компоненты с включенными в неё необходимыми библиотеками (размер компоненты в этом случае уже увеличивается до 103 кб). Смотрите раздел с файлами в этой публикации.
le_, благодарю за быстрый ответ!
(14)
Может конечно ошибаюсь, но просто подумал, зная хендл отдельного окна УФ, наверно можно было бы применить те же настройки к текущему окну как и для главного?
(15)
Пакет VC++ я уже устанавливал до этого. Без него моя ВК не подключалась совсем, ОС выдавал ошибку, что нет библиотеки msvcr120.dll.
Обновленная ВК заработала сразу на Windows Server 2008 R2 Standart, большое спасибо!
А за вариант компоненты с включенными в неё необходимыми библиотеками еще отдельно спасибо.
В таблице методов ошибка или действительно метод так называется «ПеременститьНаПереднийПлан» ?
После некоторых манипуляций с методами компоненты уже хотя бы удалось активизировать окно на передний план после открытия. До этого в Windows 7 окно просто «мигало» в панели задач и не активизировалось. В идеале конечно хотелось бы закрепить поверх остальных окон всегда.
Смотря какая задача решается. Для меня, например, необходимо скрыть главное окно и показать УФ обработки, закрепив его поверх остальных. Мне кажется, можно было бы закрепить главное окно, открыть УФ в режиме «БлокироватьВесьИнтерфейс», скрыть главное окно. Либо еще лучше, сразу закрепить УФ обработки, а главное — скрыть не показывая сразу.
Можно, конечно, но в моем случае управляется именно главное окно.
Это была опечатка здесь, в описании. Поправил.
Добрый день. Скачал и первый и второй вариант dll, но в сожалению не могу их зарегистрировать. Пробовал через regsvr32 пишет что точка входа DllRegisterServer не найдена, если с ключами i n то точка входа dllInstall не найдена. Если через regasm, то error RA0000 сбой при загрузке из-за недопустимой сборки .net. Подскажите что делать. Пробовалось на win 7 64 и 86 и win2008r2.
(21) orlovskiy-a, это native-компонента, её не нужно регистрировать.
А можно узнать, как в С++ получить хендл главного окна 1С?
Тоже пишу компоненту, но в С++ не силен, просто интересно, как это сделать.
(23) CyberWo1f, ответил личным сообщением.
а куда ее нужно положить? никак не получается пишет {Обработка.ПримерРаботыСКомпонентой.Форма.Форма.Форма(22)}: Тип не определен (Addin.MWC.MainWindowCommander)
Разобрался.
Один вопрос, она остаётся в папке. Как её удалить потом?
(27) Dvornik, УдалитьФайлы()
(28) Ошибка при вызове метода контекста (УдалитьФайлы): Ошибка удаления файлов: Ошибка доступа к файлу
Отвечу сам. Всё оказалось проще. Методов отключения нет, поэтому присвоил Неопределено.