Всем выйти из сумрака - отображение скрытого окна процесса 1C, запущенного через OLE

10.04.11

База данных - Инструменты администратора БД

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
show_window
.zip 389,03Kb
141
141 Скачать бесплатно

Причины описанного поведения "OLE-шной базы" зачастую банальны. Либо "отображается" какое-то диалоговое окно, с предложением тыкнуть в одну из кнопок, а тыкать некуда - главное окно процесса невидимо. В качестве примера подойдет то же окно с подтверждением выхода из программы при завершении работы. Или же в окне сообщений может быть выведена важная поясняющая информация, способная помочь разобраться в ситуации.

Суть алгоритма очень проста: получаем список всех окон, сравниваем заголовок очередого окна с шаблоном, и если это окно невидимо - отображаем его. 

 

Примечание:

В текущей реализации годится не для всех случаев! Например, при ручном запуске базы 7.7 с не той кодовой страницей, окно с сообщением об отличии порядка сортировки появляется и имеет заголовок "1С:Предприятие", но при попытке подключиться к этой же базе по OLE окно с таким заголовком отсутствует напрочь. Анализ окон по Process ID такого 1С OLE подключения показал следующее: всего 4 окна, CLASS и ТЕХТ - у всех окон пустые, у одного Title=DDE Server Window, у другого Title=Default IME   и все...  Может кто подскажет как выкрутиться в таких случаях?

 

Использование:

show_window.exe [шаблон поиска] - По умолчанию шаблон поиска заголовка окна это "1С:Предприятие" и никаких параметров запуска указывать не надо. Есть возможность задать свой шаблон поиска в командной строке через параметры запуска. По сути передаваемый параметр(ы) - это строка (для знакомых с темой регулярных выражений: RegExp в реализации AutoIt, аналогичной VBScript.RegExp, для тех кто не знает что это такое - это не важно!).  Если шаблон поиска указан, то все пробелы между названием программы и шаблоном воспринимаются как один пробел. Все пробелы внутри шаблона остаются неизменными. В случае применения пробелов внутри шаблона заключать шаблон в кавычки нет необходимости.

 

Исходный код к программе прилагается. Мог бы написать этот костыль на Delphi, VBScript / JScript, в виде обработки 1С с использованием ВК Formex, но лично для меня в AutoIt это было сделать быстрее и проще.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    20419    136    76    

137

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    13021    54    33    

72

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    11850    51    8    

81

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34652    109    152    

75

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    74355    629    45    

88

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10455    10    4    

18

Инструменты администратора БД Программист Бухгалтер Платформа 1С v8.3 Управляемые формы 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Платные (руб)

В процессе работы  возникла необходимость управления последовательностями в разрезе измерений. Штатные возможности не позволяют этого сделать. Но бывает очень необходимо восстановить последовательность только по одному измерению (например, подразделению, организации и т.д.). (Возможность покупки за рубли и StartMoney).

2400 руб.

24.08.2018    17567    11    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1067 11.04.11 13:13 Сейчас в теме
3. kittystark 15 11.04.11 14:52 Сейчас в теме
(1),(2)блин, кто-ж знал...
честно искал через яндекс - не нашел
решил написать на скорую руку, хотя и терзали смутные сомненья, что неужели никто этого еще не написал

как говорится, и где ты был раньше ?
4. Ёпрст 1067 11.04.11 15:00 Сейчас в теме
(3) никто не спрашивал..
,а так, велосипеды изобретать не зазорно..
5. CaSH_2004 374 17.04.11 01:28 Сейчас в теме
Насколько я понял мы тут говорим про процессы... я всегда их отлавливал и рубил через TotalCommander, лучшего помошника программисту я еще не видел
так что советую пользоваться
6. kittystark 15 17.04.11 12:38 Сейчас в теме
(5) тоталом не пользуюсь, предпочитаю FAR, поэтому вопрос, так, ради общего развития: а что, тотал позволяет ОТОБРАЗИТЬ окно скрытого процесса ?

а в плане рубануть, так под W2008Srv стандартного Ctrl+Shift+Esc (task manager) - мне пока более чем достаточно (список колонок только поднастроить 1 раз), для массового рубилова изредка пользуюсь стандартным же taskkill, хотя, изначально речь шла вроде не об этом...
15. sanfoto 502 28.07.15 10:47 Сейчас в теме
(6)
ответ пардон запоздал)))
на ...
а что, тотал позволяет ОТОБРАЗИТЬ окно скрытого процесса ?

да как правило позволяет.. через ТаскМэнеджер открываем сво-ва процесса и ищем опцию типа Visible - выставляем в True
(В данном случае это вероятней всего элемент с классом "V8TopLevelFrame")
7. CaSH_2004 374 17.04.11 15:27 Сейчас в теме
Насчет скрытых точно не могу ответить на вопрос, за несколько лет много раз делал обмены и не раз повисало соеденение, всегда выручал Тотал
пользуюсь Task manager и иногда AceHelper
Что то не встречал особо скрытых процессов, хотя знаю что такие есть, но я не проверял скрытые они или нет т.к. все что мешает вижу в тотале и просто убиваю их, не спрашивая скрытые они или нет :)
насчет удобства предпочитаю Тотал - позволяет фильтровать список процессов по быстрому набору с клавиатуры, и к тому же он оказывает пиктограммы, что тоже ускоряет поиск. Хотя виндовские средства надежнее но мне только несколько раз встречались случаи когда тотал не мог а виндовс мог убить процесс. Если есть такая информация то прояни момент - разве тотал не может видеть скрытые?
8. EugenVitla 29.08.11 11:05 Сейчас в теме
(7) Снести процесс каждый может. Хотя б даже и диспетчером, по колонке ID. Особенно прелестно потом минут 10 загорать, пока DBF переиндексируется. А вот понять, какого черта оно вешается - тут снесение не поможет.
9. CaSH_2004 374 29.08.11 11:55 Сейчас в теме
(8)Ну я не индексирую т.к. программу завершил сам и знаю что это не ошибка системы, несколько лет так делаю никаких проблем не встречал. В свободной ночью ставлю на полное тестирование+востановление и все.
Любопытно, а как ты определяеш из-за чего зависла программа? Я могу это определить только если сам допустил ошибку в коде, а чужую ошибку можно только путем эксперементов выявить
10. EugenVitla 29.08.11 12:05 Сейчас в теме
(9) Если 1С сворачивается в коврик и болтается, так хоть понятно, что утечка памяти где-то.
Плюс у меня база, в которой разработку веду, отладочные сообщения высыпает палюбасу. И при подключении по OLE я их не вижу.
Все руки не доходят это дело в файл лога писать - сделано было еще до классов, много где переписывать нужно.

ЗЫ. ТиИ на моей машинке (Core 6320) занимает около двух суток ;-)
11. nkure 30.09.11 09:58 Сейчас в теме
12. EugenVitla 04.10.11 01:47 Сейчас в теме
(11) nkure, W2k3 R2 x86/х64 - полет нормальный.
дело явно не в бобине.
13. ildus78 29.06.12 15:07 Сейчас в теме
это же самое можно сделать с помошью FAR плагин DoHide
14. mars30ob 15.07.13 18:18 Сейчас в теме
На W2k3 srv R2 x86 выдает:
Файл изображения D:\show_window.exe не поврежден, но предназначен для другого типа компьютера.

Это как понимать?
Оставьте свое сообщение