|   |   | 
| 
 | 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) Это Артур делал. Насколько я понимаю, именно для отладки.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |