До старта конференции

Внешняя компонента для управления главным окном 1С:Предприятие

Программирование - Внешние компоненты

Маленькая внешняя компонента для управления главным окном 1С:Предприятие версии 8.2.

Компонента может быть полезной, программистам, использующим в решениях на 1С окна и диалоги других приложений Windows.

Например, при программном открытии документов MS Office или использовании диалогов, вызываемых из WSH, окно 1С может терять фокус или видимость. Вернуть их можно будет с помощью этой компоненты.

Компонента разработана по технологии Native. Размер всего 12 кб.

Работает только в Windows с 1С v. 8.2 (обычное приложение, толстый и тонкий клиент управляемого приложения).

Пример использования (конфигурация) прилагается (обычное и управляемое приложение).


Методы компоненты

Метод Русский синоним Действие
Minimize   Свернуть Сворачивание окна в панель задач
Maximize   Развернуть Разворачивание окна во весь экран
Hide       Скрыть Сокрытие главного окна 1С
Show       Показать Показ главного окна 1С (после скрытия)
ShowNormal РазвернутьВОкно Показ окна в неполноэкранном режиме
MoveOnTop  ПереместитьНаПереднийПлан Перемещение окна на передний план
SetAlwaysOnTopOn ЗакрепитьПоверхВсехОкон Закрепление окна поверх всех окон (только для обычного приложения)
SetAlwaysOnTopOff СнятьЗакрепление Снятие закрепления (только для обычного приложения)
CloseMessages ЗакрытьОкноСообщений Закрытие окна сообщений
CloseAllChildForms ЗакрытьВсеДочерниеФормы Закрытие всех дочерних форм главного окна 1С (только для обычного приложения)

 

 

 

 

 

 

 

 

 

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

Наименование Файл Версия Размер
Внешняя компонента для управления главным окном 1С (архив rar)
.rar 42,03Kb
19.02.15
30
.rar 42,03Kb 30 Скачать
Только компонента, без конфигурации. Эта компонента включает в себя необходимые библиотеки MS Visual Studio (см. комментарий 15).
.rar 45,73Kb
19.02.15
13
.rar 45,73Kb 13 Скачать

См. также

Комментарии
1. Spektr Тунда (Spektr) 421 01.05.12 11:58 Сейчас в теме
Не могу распаковать архив.
Выдает сообщение:
"Неизвестный метод в 1Cv8.1CD
Неизвестный метод в MWC.dll
Ошибка - сбой при операции"
2. Евгений (le_) 178 01.05.12 13:37 Сейчас в теме
3. Константин Матвеев (koka) 73 02.05.12 10:14 Сейчас в теме
Расширение функционала 1С - однозначно плюс.
Компонента работает правильно. Но столкнулся с таким моментом. Есть код (вызывается по доп. кнопке в примере):
					ПолноеИмяРабФайла = "C:\Temp\Схема локальной сети.vsd";

					ДокДляБуфераОбмена = Новый COMОбъект("Visio.Application"); 
					ДокДляБуфераОбмена.Visible = False; 
					ДокументВизио = ДокДляБуфераОбмена.Documents.OpenEx (ПолноеИмяРабФайла, 2);
					Для i = 1 По ДокДляБуфераОбмена.ActiveWindow.Page.Shapes.Count Цикл
						 ДокДляБуфераОбмена.ActiveWindow.Select( ДокДляБуфераОбмена.ActiveWindow.Page.Shapes.Item(i), 2);
					КонецЦикла;
					ДокДляБуфераОбмена.ActiveWindow.Selection.Copy();
					
					// ...  Обработка буфера обмена
					
					ДокументВизио.Close();

					ГлавноеОкно.ПереместитьНаПереднийПлан();
			//		ГлавноеОкно.Показать();
...Показать Скрыть


Открывается документ Visio, копируется содержимое в буфер обмена для дальнейшей обработки, закрывается документ.
Фокус убегает на окно, открытое ПЕРЕД вызовом Главного Окна 1С. Методы компоненты MWC.dll отрабатывают, но не перемещают окно 1С на передний план. Скорее всего что-то в Windows сдвигается. Было бы здорово, поправить этот нюанс.
Прикрепленные файлы:
Схема локальной сети.vsd
4. Евгений (le_) 178 02.05.12 10:19 Сейчас в теме
(3) koka, вечером попробую воспроизвести, доработаю.
5. Евгений (le_) 178 03.05.12 01:30 Сейчас в теме
(3) koka, попробуйте обновленную компоненту.
6. Константин Матвеев (koka) 73 03.05.12 09:46 Сейчас в теме
(5) le_, Попробовал.
1. В XP: Первый раз основное окно 1С (вызванное из конфигуратора) переместилось на передний план после вызова и закрытия Visio. Однако после этого не получалось (кроме одного раза) разными ухищрениями: на переднем плане остаётся приложение, бывшее активным ДО вызова приложения на 1С. А на панели задач кнопка управления окном 1С помигала и осталась подсвеченной (просится нажать на неё).
2. В 7-ке: Работает стабильно. Может и первый вариант работал стабильно? Я не пробовал.

Выводы: Обработка хорошая, дорабатывать для ХР смысла видимо нет - особенности операционки.
7. defini (defini) 448 03.05.12 11:04 Сейчас в теме
Эх.. такое бы для подчиненных окон внутри самой 1с...
8. Евгений (le_) 178 03.05.12 11:16 Сейчас в теме
(6) koka, да, я ваш пример под Win7 тестировал. Чуть позже под XP попробую допилить...
9. Евгений (le_) 178 27.02.13 12:16 Сейчас в теме
Компонента обновлена. Добавлен метод для закрытия окна сообщений.
10. Юрий Осипов (yuraos) 901 27.02.13 18:33 Сейчас в теме
Люблю всякие интерфейсные фишки!
А нельзя как-нибудь еще управлять и внутренними окнами 1С-ки
наподобии ВК FormEx.dll которая для 1с-7.7 ???

Меня в частности интерисует возможность изменения
места положения окна формы.

У форм есть свойства Ширина и Высота, которые можно изменять.
А вот свойств Лево и Верх к сожалению нет.

А так хочется иногда открыть форму в определенном месте,
например, выравнять по какому-нибудь элементу другой формы.
11. Лев Корл (lev6975) 04.08.14 08:19 Сейчас в теме
Помню, пару лет назад, скачал какую - то компоненту, которая позволяла управлять, к примеру, прозрачностью главного окна программы - шутковали у клиентов - бух базу открывает, а она на дисплее бледнеет и полностью растворяется:-)))))))))))))))))))))
Вот, как называется эта dll, запамятовал... Там ещё можно было вывести аналоговые часы на раб.стол 1с...
Если помнит кто эту компоненту, то как она называется?Отсюда и качал, по - моему, откуда - то...
12. Евгений Долиновский (Dolly_EV) 264 15.10.14 14:56 Сейчас в теме
13. Мурат Жананов (murat_) 33 18.02.15 23:13 Сейчас в теме
Добрый день! Есть вопросы по данной компоненте:
1) Кто-нибудь проверял работу данной ВК под ОС x64 ? Пробовал запустить на Server 2008 х64 - компоненту подключает, но не создает объект "Addin.MWC.MainWindowCommander", выдает ошибку "Тип не определен (Addin.MWC.MainWindowCommander)". На Windows 7 х32 все нормально работает.
Есть в планах у автора доработать компоненту для х64 систем ?
2) Вопрос автору, чем вызвано ограничение метода "SetAlwaysOnTopOn" только для обычного приложения ?
Есть возможность доработать для управляемого приложения ?
14. Евгений (le_) 178 19.02.15 10:02 Сейчас в теме
(13)
Вопрос автору, чем вызвано ограничение метода "SetAlwaysOnTopOn" только для обычного приложения ?

Использование этого метода становится неудобным в режиме предприятия, при использовании управляемого приложения, при установке свойства Сервис - Параметры - Режим открытия форм - В отдельных формах.

Работу компоненты под х64 проверю...
15. Евгений (le_) 178 19.02.15 11:13 Сейчас в теме
(13) Описанная вами проблема на Server 2008 х64 связана с отсутствием там библиотек среды MS Visual Studio, используемых в компоненте.
Для решения проблемы либо установите Распространяемый пакет Visual C++,
либо скачайте вариант компоненты с включенными в неё необходимыми библиотеками (размер компоненты в этом случае уже увеличивается до 103 кб). Смотрите раздел с файлами в этой публикации.
16. Мурат Жананов (murat_) 33 20.02.15 22:59 Сейчас в теме
le_, благодарю за быстрый ответ!
(14)
Может конечно ошибаюсь, но просто подумал, зная хендл отдельного окна УФ, наверно можно было бы применить те же настройки к текущему окну как и для главного?
(15)
Пакет VC++ я уже устанавливал до этого. Без него моя ВК не подключалась совсем, ОС выдавал ошибку, что нет библиотеки msvcr120.dll.
Обновленная ВК заработала сразу на Windows Server 2008 R2 Standart, большое спасибо!
А за вариант компоненты с включенными в неё необходимыми библиотеками еще отдельно спасибо.
17. Мурат Жананов (murat_) 33 20.02.15 23:02 Сейчас в теме
В таблице методов ошибка или действительно метод так называется "ПеременститьНаПереднийПлан" ?
18. Мурат Жананов (murat_) 33 20.02.15 23:26 Сейчас в теме
После некоторых манипуляций с методами компоненты уже хотя бы удалось активизировать окно на передний план после открытия. До этого в Windows 7 окно просто "мигало" в панели задач и не активизировалось. В идеале конечно хотелось бы закрепить поверх остальных окон всегда.
19. Мурат Жананов (murat_) 33 20.02.15 23:35 Сейчас в теме
Использование этого метода становится неудобным в режиме предприятия, при использовании управляемого приложения, при установке свойства Сервис - Параметры - Режим открытия форм - В отдельных формах.

Смотря какая задача решается. Для меня, например, необходимо скрыть главное окно и показать УФ обработки, закрепив его поверх остальных. Мне кажется, можно было бы закрепить главное окно, открыть УФ в режиме "БлокироватьВесьИнтерфейс", скрыть главное окно. Либо еще лучше, сразу закрепить УФ обработки, а главное - скрыть не показывая сразу.
20. Евгений (le_) 178 21.02.15 12:36 Сейчас в теме
Может конечно ошибаюсь, но просто подумал, зная хендл отдельного окна УФ, наверно можно было бы применить те же настройки к текущему окну как и для главного?

Можно, конечно, но в моем случае управляется именно главное окно.

В таблице методов ошибка или действительно метод так называется "ПеременститьНаПереднийПлан" ?

Это была опечатка здесь, в описании. Поправил.
21. Алексей Орловский (orlovskiy-a) 03.07.15 14:09 Сейчас в теме
Добрый день. Скачал и первый и второй вариант dll, но в сожалению не могу их зарегистрировать. Пробовал через regsvr32 пишет что точка входа DllRegisterServer не найдена, если с ключами i n то точка входа dllInstall не найдена. Если через regasm, то error RA0000 сбой при загрузке из-за недопустимой сборки .net. Подскажите что делать. Пробовалось на win 7 64 и 86 и win2008r2.
22. Евгений (le_) 178 03.07.15 17:47 Сейчас в теме
(21) orlovskiy-a, это native-компонента, её не нужно регистрировать.
23. Денис Вовк (CyberWo1f) 5 27.10.15 14:39 Сейчас в теме
А можно узнать, как в С++ получить хендл главного окна 1С?
Тоже пишу компоненту, но в С++ не силен, просто интересно, как это сделать.
24. Евгений (le_) 178 27.10.15 19:33 Сейчас в теме
(23) CyberWo1f, ответил личным сообщением.
25. Seva __ (seva1405) 25 15.11.15 18:09 Сейчас в теме
а куда ее нужно положить? никак не получается пишет {Обработка.ПримерРаботыСКомпонентой.Форма.Форма.Форма(22)}: Тип не определен (Addin.MWC.MainWindowCommander)
26. Seva __ (seva1405) 25 15.11.15 20:58 Сейчас в теме
27. Den Dan (Dvornik) 20 12.04.16 11:02 Сейчас в теме
Один вопрос, она остаётся в папке. Как её удалить потом?
28. Евгений (le_) 178 12.04.16 14:40 Сейчас в теме
29. Den Dan (Dvornik) 20 13.04.16 08:42 Сейчас в теме
(28) le_, Ошибка при вызове метода контекста (УдалитьФайлы): Ошибка удаления файлов: Ошибка доступа к файлу
30. Den Dan (Dvornik) 20 13.04.16 08:59 Сейчас в теме
Отвечу сам. Всё оказалось проще. Методов отключения нет, поэтому присвоил Неопределено.

ГлавноеОкно=Неопределено;
	Попытка
		УдалитьФайлы(Местоположение);
 ..... и т.д.

Оставьте свое сообщение