Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) v8: Как перехватить все открытые табличные документы (число прочтений - 18990 )
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
v8: Как перехватить все открытые табличные документы
15. Декабря 2011 :: 10:23
Печать  
Собственно вопрос... может я плохо искал (или вообще не искал Улыбка), но вот мне надо получить все открытые на текущий момент табличные документы, причем сделано это в форме отчета, или штатными возможностями 1С (например вывод на печать форм списков).
Ну и вообще шикарно будет если это будут объекты "ТабличныйДокумент" Улыбка))))

Ах да.. платформа 1С 8.2.13 и выше Улыбка.
На 7.7 то это плевое дело (спасибо разработчикам FormEx).

Есть идеи? Чем круче тем лучше  Очень довольный

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

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: v8: Как перехватить все открытые табличные документы
Ответ #1 - 15. Декабря 2011 :: 10:36
Печать  
де жа вю ?
этот вопрос вроде недавно кто-то спрашивал.. или нет ?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #2 - 15. Декабря 2011 :: 13:51
Печать  
Как удачно ТС зашел Улыбка
chessman буквально в эти дни сделал спец.обработку СписокФорм ((при моем небольшом участии)!
Можно получить список всех открытых форм с заголовками, хендлами,  в т.ч. и табличные документы.
я уже заюзал эту возможность для своей системы тестирования Functest.v8 - автополучение результов работы отчетов/обработок.
Наслаждайтесь Улыбка
Версия 1.1

Работа протестирована на 8.2.13.219 и 8.2.14.540. Т.е. 8.2.13 и 8.2.14 работают нормально.

На 8.2.15.273 пока вылетает 1С, будем разбираться

Пример реального кода
Цитата:
     лСписокОкон = _ОбъектСписокОкон.ПолучитьСписокФорм();
     лСписокТабличныхДокументов = Новый СписокЗначений;
     Для каждого лЭлемент Из лСписокОкон  Цикл
           текФорма = лЭлемент.Значение;
           Если ТипЗнч(текФорма) <> Тип("ТабличныйДокумент") Тогда
                 Продолжить;
           КонецЕсли;
           лЗаголовокФормы =  лЭлемент.Представление;
           лСписокТабличныхДокументов.Добавить(текФорма, лЗаголовокФормы);
     КонецЦикла;
     лЭлемент = лСписокТабличныхДокументов.ВыбратьЭлемент("Выберите имя открытого табличного документа");
     Если лЭлемент = Неопределено  Тогда
           Возврат;
     КонецЕсли;
     ТабДок = лЭлемент.Значение;


ЗЫ chessman без DynaWrapperX никуда, так что он должен быть зареген Улыбка
« Последняя редакция: 19. Декабря 2011 :: 08:18 - artbear »  

chessman_WindowsList_1_1.7z ( 27 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #3 - 16. Декабря 2011 :: 03:22
Печать  
Положил другой файл.
Добавил обработку для авторегистрации DWX - DWX берется из макета и регистрируется в системе. Сначала в HKLM, если не получилось, то в HKCU
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #4 - 19. Декабря 2011 :: 08:17
Печать  
Забыл упомянуть, что работа протестирована на 8.2.13.219 и 8.2.14.540. Т.е. 8.2.13 и 8.2.14 работают нормально.

На 8.2.15.273 пока вылетает 1С, будем разбираться
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #5 - 19. Декабря 2011 :: 09:10
Печать  
А что уже и 8.2.15 вышла? Фигасе я отстал Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #6 - 19. Декабря 2011 :: 14:22
Печать  
Ты по сабжу скажи что-нибудь Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #7 - 19. Декабря 2011 :: 14:25
Печать  
Цитата:
Версия 1.2

+Исправление работы для платформы 1С 8.2.15.273
+ добавлена обработка Регистрация_DynaWrapperX.epf для авторегистрации DWX (DWX вложен как макет в обработку)
+ добавлены методы для получения/установки заголовка главного окна 1С:Предприятие

  

chessman_WindowsList_1_2.7z ( 27 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
CaSH
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 02. Мая 2011
Re: v8: Как перехватить все открытые табличные документы
Ответ #8 - 24. Сентября 2012 :: 20:18
Печать  
Спасибо Chessman и Artbear за такую замечательную вещь. При помощи нее и MiracleV8 я соорудил подписку на событие формы ПриОткрытии - именно этого мне всегда недостовала после 1C++ из 7.7
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #9 - 25. Сентября 2012 :: 03:09
Печать  
Всегда пожалуйста Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #10 - 25. Сентября 2012 :: 03:10
Печать  
Что-то сабж у меня на 8.2.15.318 стал ронять 1С Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v8: Как перехватить все открытые табличные документы
Ответ #11 - 25. Сентября 2012 :: 03:11
Печать  
CaSH писал(а) 24. Сентября 2012 :: 20:18:
При помощи нее и MiracleV8 я соорудил подписку на событие формы ПриОткрытии - именно этого мне всегда недостовала после 1C++ из 7.7

Как сделал? Поделись
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: v8: Как перехватить все открытые табличные документы
Ответ #12 - 25. Сентября 2012 :: 06:27
Печать  
artbear писал(а) 25. Сентября 2012 :: 03:10:
Что-то сабж у меня на 8.2.15.318 стал ронять 1С Печаль


В отпуске до конца недели. Похоже, там путь до длл-ки нужно прописывать полный. Я у себя это давно поправил.
Разберемся.
  
Наверх
 
IP записан
 
CaSH
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 02. Мая 2011
Re: v8: Как перехватить все открытые табличные документы
Ответ #13 - 27. Сентября 2012 :: 13:35
Печать  
Ну в  Miracle есть позможность перехватывать события Создания и Уничтожения формы
при этом пишется его хэндл, оно возникает после отработки процедуры ПриОткрытии() самой формы - это конечно плохо, но пока терпимо
В этом событии я вызываю ваш механизм - и после получения всех форм по хэндлу выхватываю созданную
  
Наверх
 
IP записан
 
CaSH
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 02. Мая 2011
Re: v8: Как перехватить все открытые табличные документы
Ответ #14 - 07. Декабря 2012 :: 13:24
Печать  
Оч-ч-чень сильно интересует 3 вещи:
- насколько я понял ковыряя код скрипта механизм вполне универсальный и не будет зависеть от версии Windows (ХР, 2003, 7, 2008)?
- на какой стадии проект по перехвату событий? Будет ли он развиваться или закрыт? Я когда тестировал то что дал artbear то выявил единственный глюк: в отчетах при выполнении расшифровки она блокируется ВК и вылетает окно какое-то (уже не помню)
- и как относится к механизму перехвата событий механизм получения списка открытых форм с контекстом, последний вариант который у меня есть - вываливается с дампом памяти
Как я говорил artbear'у я хотел бы принять участие для завершения данных проектов, только не знаю что именно делать - тесты все провел, а дальше меня отвлекли, но сейчас хотел бы вернуться к данному вопросу.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать