|
v7: Как сделать окно внешней обработки невидимым - 2 | ☑ | ||
---|---|---|---|---|
0
victuan1
27.07.16
✎
18:26
|
Продолжение темы Как сделать окно внешней обработки невидимым
Через 1с++ можно сделать окно внешней обработки невидимым? Т.е. пользователь ее не видит. Но можно обращаться к ней из других форм через Форма.Параметр и процедуру ПриПовторномОткрытии(). Ёпрст: А зачем для этого форма обработки ? ВыполняемыйМодуль(2) или ДопГлобальник(1) формекса .. или классы(3) - покрывают все потребности (1) Если использовать ДопГлобальник, то модуль не проходит синтаксический контроль при использовании процедур и функций ДопГлобальника. Можно? конечно, ДопГлобальник загружать в модуле одной обработки, а использовать в модуле другой, но рой синтаксических ошибок всё равно будет мешать в конфигураторе. Использовать Шаблон? Некрасиво, и не получится определить в ДопГлобальнике процедуры. А функции должны будут возвращать только простые типы данных, либо придется результат оборачивать в ЗначениеВСтрокуВнутр. Использование этих доп. функций (Шаблон, ЗначениеВстрокуВнутр, ЗначениеИзСтрокиВнутр) наверняка скажется на производительности. Как изящно решить проблему? |
|||
355
victuan1
01.09.16
✎
21:38
|
Вылетает, если в отладчике пытаться прочитать значение переменной, которая не существует в данном контексте.
|
|||
356
victuan1
07.09.16
✎
18:52
|
На одном компьютере обнаружил еще одну бяку. Если загружены 1с++ и Формекс, то при использовании КОП 1с++, происходит падение 1с на операторе Предупреждение().
Если формекс не загружать, то падения не происходит. Как лечить? |
|||
357
victuan1
08.09.16
✎
10:34
|
ап. вопрос серьезный.
|
|||
358
ADirks
08.09.16
✎
10:43
|
В каком порядке грузятся компоненты?
Что ещё грузится? крайне желательно, чтобы первой грузилась 1cpp, потом FormEx, а потом уж всё остальное |
|||
359
victuan1
08.09.16
✎
12:22
|
Сначала грузиться 1с++, потом формекс, потом подключается класс через МетаИнфо, затем в классе вызывается Предупрждение.
Если из этой цепочки убрать загрузку формекса, то траблы нет. Пока на одном компьютере такая бяка обнаружена. |
|||
360
victuan1
08.09.16
✎
13:28
|
какую еще инфу предоставить?
|
|||
361
Ёпрст
08.09.16
✎
14:26
|
>>>затем в классе вызывается Предупрждение.
Зачем ? |
|||
362
Ёпрст
08.09.16
✎
14:27
|
Используй лучше "Легкое сообщение" заместо этого, и красившее и систему не стопарит
|
|||
363
Это_mike
08.09.16
✎
14:36
|
(362)офф. А почему Турбомд может не работать? Из-за перехватчика - может?
А то вот понадобилось внезапно под конец, и не заработало |
|||
364
victuan1
08.09.16
✎
15:35
|
Обнаружил что еще запускается класс с перехватчиком предопределенных процедур.
|
|||
365
victuan1
08.09.16
✎
15:36
|
(362) Что такое "легкое сообщение"?
|
|||
366
victuan1
08.09.16
✎
16:11
|
Проверил влияние Перехватчика отключением он не причем. Виснет 1С если запущен формекс, если формекс не запускать, то не виснет. Куда копать дальше?
|
|||
367
Это_mike
08.09.16
✎
16:19
|
(366) а какие-нибудь формексовские объекты создаются? или только загрузка?
|
|||
368
Ёпрст
08.09.16
✎
17:42
|
(363) Их есть несколько версий и только одна корректно более менее работает с 1cpp
|
|||
369
Ёпрст
08.09.16
✎
17:47
|
||||
370
Ёпрст
08.09.16
✎
17:57
|
(363) вот эта
https://cloud.mail.ru/public/Micg/RNZLTUP6K |
|||
371
victuan1
08.09.16
✎
19:35
|
(367) упростил всё до минимума - только загрузка
(368) 2.0.5.108 |
|||
372
victuan1
10.09.16
✎
14:51
|
Ну вот, еще на одном компьютере тоже зависло. Но уже на операторе Вопрос() внутри КОП.
Формекс не загружался, только 1с++. Как решить проблему? |
|||
373
victuan1
10.09.16
✎
18:04
|
(372) Нет, формекс там стоит в закгрузке ПриНачалеРаботыСистемы. просто версия древняя, в Сервис-Параметры не отображалась. Отключил загрузку формекса - проблема ушла. Запуск 1с++ перед формексом не решает проблему.
|
|||
374
victuan1
10.09.16
✎
18:22
|
Удалось создать демо-пример для иллюстрации ошибки. Если есть заинтересованные, то могу выслать для анализа кода.
|
|||
375
victuan1
10.09.16
✎
18:50
|
Для всех заинтересованных: https://yadi.sk/d/ODIKTzSFuyqUN
Для иллюстрации проблемы используются файлы: ПроверкаКОП.ert - обработка, инициализирующая КОП. КОП_Проверка.ert - собственно класс. Порядок действий, приводящий к появлению проблемы: 1) в гл. модуле конфигурации 1С нужно объявить экспортную переменную глКОП: Перем глКОП Экспорт; 2) В режиме 1С:Предприятие открыть ПроверкаКОП.ert, нажать кнопку Сформировать, затем Проверка - произойдет показ диалогов Предупреждение и Вопрос. 3) Закрыть обработку ПроверкаКОП.ert 4) Снова открыть ПроверкаКОП.ert, нажать кнопку Проверка - произойдет зависание программы 1С. Отладчик остановится на операторе Предупреждение внутри класса КОП_Проверка.ert Если кнопку Проверка нажимать повторно, не закрывая обработку ПроверкаКОП.ert - зависания не происходит. Т.е. проблема возникает при переопредении переменной, ссылающейся на экземпляр класса. 1с++ использовалась версии 3.2.4.3. Формекс - 2.0.5.108, но на более ранних версиях проблема сохраняется. |
|||
376
victuan1
10.09.16
✎
18:53
|
Возможно окна Предупреждение или Вопрос появляются, но они невидимы и нет возможности их интерактивно обработать.
|
|||
377
Djelf
10.09.16
✎
21:54
|
(375) Win10, 1cpp 3.2.4.3, formex 2.0.5.101 - все ок.
А если таймаут в предупреждении и вопросе указать тоже замерзает? |
|||
378
victuan1
11.09.16
✎
05:04
|
(377) Не успел еще проверить. При случае проверю. Мне приходится удаленно подключаться к клиенту для проверки. Т.к. на моих компах подобного сабжа нет.
|
|||
379
victuan1
12.09.16
✎
12:08
|
Доп. информация. "Замерзает" именно из-за переопределения переменной, ссылающейся на экземпляр класса:
глЕ = глКОП; глЕ.ИмяФайлаОбработки("Проверка") В таком виде: глКОП.ИмяФайлаОбработки("Проверка") зависания при повторном запуске обработки не происходит. Таймаут в Предупреждение не помогает. |
|||
380
victuan1
12.09.16
✎
12:22
|
Если Формекс не загружать, то зависания также нет при любом варианте.
На одном из двух компьютеров сторонний дебаггер сообщает об необработанном исключении в 1cv7s.exe (https://yadi.sk/i/YdHco4Guv4HjN). Могу организовать удаленный доступ на компьютер, в котором имеет место быть сабж (уже два таких устойчивых инцидента на разных компьютерах зарегистрированы). |
|||
381
Ёпрст
12.09.16
✎
12:30
|
Ничего не падает и не "подвисает"
Win2012 x64 Win XP x32 |
|||
382
Злопчинский
12.09.16
✎
12:38
|
смотреть версии формекса и 1С++ ???
|
|||
383
victuan1
12.09.16
✎
13:51
|
(382) А что смотреть? Последние стоят.
|
|||
384
victuan1
12.09.16
✎
13:51
|
(381) Этот сабж я воспроизвел на двух ПК из 20. Могут дать уд. доступ к сабжевому компу.
|
|||
385
Djelf
12.09.16
✎
17:30
|
Поймал вылет! Еще одно условие для вылета: объявление переменной глКОП не должно быть первым в глобальнике.
Странно, вчера не вылетало... |
|||
386
victuan1
12.09.16
✎
17:58
|
(385) У меня первым стоит.
|
|||
387
Djelf
12.09.16
✎
18:28
|
(386) Вот поэтому и вылетает не всегда. Перемести пониже будет вылетать стабильнее.
Присвоение глЕ=глКОП тоже не обязательно... Похоже при закрытии формы глКОП как то портится Без formex, кстати, тоже вылетает, даже на таком коде
|
|||
388
victuan1
12.09.16
✎
18:32
|
(387) Мне без формекса уронить не удалось ни разу.
|
|||
389
Злопчинский
12.09.16
✎
19:09
|
продолжаю наблюдение...
|
|||
390
Djelf
12.09.16
✎
21:14
|
А что там наблюдать? И так уже понятно.
Открытие модальных окон из класса можно делать только из класса инициализированного в вызывающей форме. |
|||
391
Злопчинский
13.09.16
✎
12:02
|
А в доку внести...?
|
|||
392
victuan1
13.09.16
✎
18:53
|
Это пока предположение. И почему проблему с классами КОП вызывает формекс?
|
|||
393
Djelf
13.09.16
✎
23:01
|
(392) formex не виноват т.к. я воспроизвел проблему на созданной с нуля базе только с загрузкой 1сpp (иначе классов же не будет).
Для вывода монопольной формы нужна ссылка на родительскую. Видимо класс при создании запоминает эту ссылку. Когда форма закрыта, что-то еще может остаться в памяти как "мусор", но именно этот мусор и помогает не падать. Когда ссылка очищается полностью - ссылка на форму ведет в космос и мы падаем... А вот когда ссылка на форму очистится явление не сильно предсказуемое, поэтому оно иногда работает довольно долго. |
|||
394
victuan1
14.09.16
✎
15:06
|
И что, 1с++ кривая, или есть возможность ее поправить?
|
|||
395
Djelf
14.09.16
✎
15:41
|
(394) Кто ж это уже будет делать...
Есть обходной путь: сделай микро класс обертку над предупреждением и вопросом и пересоздавай его внутри своего класса. |
|||
396
victuan1
14.09.16
✎
16:03
|
(395) Не понял идею.
|
|||
397
Djelf
14.09.16
✎
16:09
|
(396) В Класс Сообщения
Функция Предупредить(ТекстПредупреждения="",Таймаут=0) Экспорт Предупреждение(ТекстПредупреждения,Таймаут); КонецФункции в твой коп вместо Предупредить Сообщения=СоздатьОбъект("Сообщения"); Сообщения.Предупредить("Упаду?"); привязка к форме будет пересоздаваться и так падать не должно. |
|||
398
Chieftain
14.09.16
✎
17:10
|
(375) 1C++ 3.2.4.1, FormEx 2.0.5.101, не воспроизвелось.
|
|||
399
victuan1
14.09.16
✎
17:12
|
(398) У меня воспроизводилось на этих версиях.
|
|||
400
victuan1
14.09.16
✎
17:13
|
(398) Для чистоты эксперимента нужно проверить на указанных мною.
|
|||
401
Chieftain
14.09.16
✎
17:17
|
(400) Выложи свои версии, 4.3 на 1Cpp.ru не нашел что-то сходу
|
|||
402
Chieftain
14.09.16
✎
17:20
|
(399) Понял в чем косяк, 1С++ и formex загружал в глобальнике. При загрузке из обработки были какие-то проблемы, сейчас порою - может найду.
|
|||
403
victuan1
14.09.16
✎
17:30
|
(402) Какая разница где загружать?
|
|||
404
victuan1
14.09.16
✎
17:33
|
(401) 3.2.4.3 здесь лежит http://www.1cpp.ru/forum/YaBB.pl?num=1332077808
|
|||
405
Chieftain
14.09.16
✎
17:34
|
(404) Устал я походу - не вижу там ссылки
|
|||
406
Djelf
14.09.16
✎
17:45
|
А нет... все таки formex. Забыл что он в функции загрузки коп грузится. Убрал - не падает.
Но в любом случае через класс обертку и с ним не падает. |
|||
407
Djelf
14.09.16
✎
17:51
|
(405) https://cloud.mail.ru/public/45EM/KVt7spxJW
чистая конфа с тестом падения, внутри 1cpp 3.2.4.3 у меня 100% падение |
|||
408
victuan1
14.09.16
✎
18:05
|
(407) Проверил на дом. компе. Упало. Спасибо)
Напомню инструкцию для вызова падения: 1) запустить демо-конфу по ссылке https://cloud.mail.ru/public/45EM/KVt7spxJW 2) в меню выбрать "упасть" 3) откроется обработка, нажать последовательно кнопки "ИнитКОП", "Упасть", "Закрыть", обработка закроется. 4) в меню выбрать "упасть" 5) обработка снова откроется, сразу нажать "Упасть". 1С зависнет. |
|||
409
Chieftain
14.09.16
✎
18:56
|
(408) Попробуй в КОП_Проверка.ert добавить код:
Перем FormEx_ЗаголовокПредупреждения Экспорт; Перем FormEx_ИконкаПредупреждения Экспорт; Перем FormEx_ОсновнаяКнопкаПредупреждения Экспорт; |
|||
410
Djelf
14.09.16
✎
18:59
|
(409) Ай шайтан! Не падает ;)
|
|||
411
Chieftain
14.09.16
✎
19:01
|
(410) Видимо ноги растут из этой фичи:
[.0] функционал переопределения иконки, заголовка и кнопки "по умолчанию" для диалогов "Предупреждение" и "Вопрос" // для переопределения надо определить переменные FormEx_ЗаголовокПредупреждения, FormEx_ИконкаПредупреждения и FormEx_ОсновнаяКнопкаПредупреждения и задать им значение //FormEx_ЗаголовокПредупреждения: строка с заголовком диалога //FormEx_ИконкаПредупреждения: число 1 - "стоп"; 2 - "вопрос"; 3 - "предупреждение"; 4 - "информация"; любое другое значение - не менять; //FormEx_ОсновнаяКнопкаПредупреждения: число - порядковый номер кнопки диалога, которая становится "по умолчанию" |
|||
412
Chieftain
14.09.16
✎
19:03
|
+(411) ИМХО: пытается получить переменные из текущего контекста как из модуля, а там другой тип (КОП) - вот и валится.
|
|||
413
Djelf
14.09.16
✎
19:05
|
(411) Об этом я думал, т.е. пытался установить эти параметры через Сервис - не помогало. А вот про экспортные переменные совсем не подумал.
|
|||
414
Chieftain
14.09.16
✎
19:10
|
(413) Возможно для обычных модулей FormEx их явно добавляет, поэтому проблем с чтением нет. А у КОПов свойства нет и при попытке чтения крашится.
|
|||
415
victuan1
14.09.16
✎
19:56
|
(409) Проверил, не падает.
Оператор Вопрос это тоже "лечит"? |
|||
416
Chieftain
14.09.16
✎
20:04
|
(415) Что мешало сразу и проверить? У меня не падает.
|
|||
417
victuan1
14.09.16
✎
20:06
|
(416) Я сразу и проверил. У меня не падает. Интересуюсь, как у других.
|
|||
418
Chieftain
14.09.16
✎
20:10
|
(417) Ну в общем-то, если логически рассуждать - должно вылечиться, т.к. эти переменные и на диалог вопроса влияют
|
|||
419
victuan1
14.09.16
✎
20:16
|
(418) Да, прочитал - вижу. Проверю еще на двух компьютерах (когда будет доступ) и можно будет считать вопрос решенным.))
|
|||
420
Злопчинский
14.09.16
✎
20:25
|
Ну вы монстры!!!
|
|||
421
victuan1
15.09.16
✎
14:17
|
Пользователи тех двух ПК отчитались - всё стало работать нормально.
АЛьФ подготовил сборку, в которой эта проблема решена без объявления в КОП переменных переопределения иконки. https://yadi.sk/d/mp4drZMqvBqLr |
|||
422
Ёпрст
15.09.16
✎
14:43
|
(421) Попроси его, чтоб событие ПослеОткрытия работало в модальных формах еще.
|
|||
423
Chieftain
15.09.16
✎
14:57
|
(422) Так юзай ФормаПриСоздании(), оно вроде работает везде
|
|||
424
victuan1
15.09.16
✎
15:02
|
(422) А сам что не попросишь?
|
|||
425
АЛьФ
15.09.16
✎
15:03
|
Обновленная версия выложена на dorex.pro
2(422) При всем моем уважении... Там реально не реально сделать. 2(423) ПослеСозданияФормы() |
|||
426
Chieftain
15.09.16
✎
15:06
|
(425) ФормаПриСоздании аналогично ПослеСозданияФормы и генерится объектом "Форма" из состава 1С++
|
|||
427
victuan1
15.09.16
✎
15:07
|
(425)
[665.21 Kb] [версия: 2.0.5.110 от 15.09.2016] [скачиваний: 888] Откуда столько скачиваний? |
|||
428
Chieftain
15.09.16
✎
15:08
|
+(426) правда оно чуть сложнее - объект "Форма" нужно держать. У меня просто в глобальном перехватчике все есть + доп.процедуры генерятся
|
|||
429
АЛьФ
15.09.16
✎
15:11
|
2(427) Логично предположить, что я просто не скидываю счетчик. :)
Но он и сам по себе глючно сделан. |
|||
430
Ёпрст
15.09.16
✎
15:47
|
(425) ну и ладно, я то переделал в своё время все свои поделки :)
Так, думал, мот там не долго. |
|||
431
Ёпрст
15.09.16
✎
15:49
|
(429) А, древнюю хотелку, с добавитьАтрибут с типом атрибута 9 (текстовая колонка), можно как-нить доработать ? Или там тоже засада по самые помидоры ?
|
|||
432
АЛьФ
15.09.16
✎
15:55
|
2(431) Добавление атрибутов это ж вообще не я до работоспособного состояния доводил, а Артур. Так что для меня там действительно засада, надо опять во всю влезать в проект.
Смотри как я к "вижуал студио" сейчас подключаюсь: - на работе бездисковая станция, сервер где-то далеко-далеко за морями, - с нее подрубаюсь к домашнему компу в терминальном режиме, - там запускаю виртуальную машину с хрюшей, - и уже тут запускаю студию. Естественно, в таком режиме нормально не поработаешь. Кстати, во многом именно поэтому и пришлось остановить развитие проекта. |
|||
433
Ёпрст
15.09.16
✎
15:57
|
(432) ну ясно. Артуру, тоже в своё время некогда было копаться. Так-то много полезных вещей с добавленной колонкой можно было бы лепить.
А и ладно, один хрне, все на снеговике ужо. почти все |
|||
434
Chieftain
15.09.16
✎
16:08
|
(432) (433) Вроде на 1Cpp какой-то деятель вопросы по этому поводу сегодня задавал
http://www.1cpp.ru/forum/YaBB.pl?num=1191404333/all |
|||
435
АЛьФ
15.09.16
✎
16:20
|
2(434) Это месяц назад. Но там я тоже уже не бывал давно. Спасибо.
|
|||
436
Vippi
15.09.16
✎
16:38
|
(433)
> А и ладно, один хрне, все на снеговике ужо. почти все Не, не все :) (435) Рад видеть, Алексей. |
|||
437
АЛьФ
15.09.16
✎
16:40
|
2(436) Взаимно.
|
|||
438
Chieftain
15.09.16
✎
16:47
|
(435) Извиняюсь за ошибку, забыл что сегодня уже сентябрь... заработался...
|
|||
439
victuan1
15.09.16
✎
17:42
|
(438) Хорошо, когда детей в школу отправлять не надо)))
|
|||
440
Chieftain
15.09.16
✎
17:45
|
(439) Ну дочь в этом году в 1 класс пошла)) Правда водит ее жена - я в этот момент только спать ложусь последнее время))
|
|||
441
victuan1
15.09.16
✎
17:52
|
А я и дочь в школу вожу и сына в садик. И забираю я же. И жену на/с работу вожу)))
|
|||
442
Djelf
15.09.16
✎
21:10
|
(425) Я как-то не понял про ПослеОткрытия...
> 2(422) При всем моем уважении... Там реально не реально сделать. FormEx_2.0.5.101 - в модальных срабатывает FormEx_2.0.5.108 - в модальных не срабатывает FormEx_2.0.5.110 по ссылке выше - в модальных срабатывает! оО |
|||
443
АЛьФ
16.09.16
✎
08:34
|
2(442) Эуэмуэ.... Кхем... Вот точно помню, что затык там конкретный был с CDialog::DoModal, что я так и не разобрался как обойти. Может я чего не то помню? Старею...
|
|||
444
ildary
16.09.16
✎
15:00
|
Уважамые гуру, все не читал, стоит обновлять FormEx до 2.0.5.110, если сейчас стоит 2.0.5.109? Задача скрытия формы пока что не стоит.
|
|||
445
АЛьФ
16.09.16
✎
15:49
|
2(444) Если все работает, то нет смысла обновляться. Этот новый релиз очень специфичный глюк исправляет.
|
|||
446
Злопчинский
16.09.16
✎
17:12
|
(433) а я? а как же я...?! ;-)
|
|||
447
Злопчинский
16.09.16
✎
17:14
|
так где правильный формекс следует брать, со всеми псолдедними и предпоследними доработками? ведь вроде когда Альф отошел от проекта - его автономно пилили формекс на 1С++ ктото.. а сейчас Альф допилил... в итоге - где "правильно"..? или ветка по формексу всего одна?
|
|||
448
Chieftain
16.09.16
✎
17:20
|
(447) на дорексе, вестимо. Артур, емнип, когда пилил - все изменение Алексею сливал
|
|||
449
Злопчинский
16.09.16
✎
19:42
|
(448) спсб!
|
|||
450
Djelf
16.09.16
✎
21:17
|
(445) На 110й РасширениеФормы.ОбработкаОжидания спамит CTimerWithEvent::SendEvent
|
|||
451
АЛьФ
19.09.16
✎
11:03
|
2(450) Так и знал, что что-то обязательно всплывет. Сегодня поправлю.
|
|||
452
АЛьФ
19.09.16
✎
12:41
|
+(451) Поправил.
|
|||
453
Djelf
19.09.16
✎
13:14
|
(452) Спасибо! Не спамит, на предупреждении не вылетает.
А с методами methColArray, methCreateStdControl_Static, methCtrlInfo, methFieldsArray, methGetCtrl, methTraceWindows что-то полезное/интересное сделать можно? Или это только для отладки? |
|||
454
АЛьФ
19.09.16
✎
13:20
|
2(453) Это Артур делал. Насколько я понимаю, именно для отладки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |