Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: Злоп от 24 марта 2024, 14:12

Название: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Злоп от 24 марта 2024, 14:12
Размышления.
.
Если уже в ОС напихали всяких расшифровок, то так и просится что-то типа:
- запрет закрытия ОС (иначе закрыл юзер ОС и всё насчитанное потеряли) или управление наличием кнопки "крестика"
на тулбаре ОС для закрытия или предопределенная ПриЗакрытииОС (при этом закрытие должно нормально пройти если закрывается главное окно/сессия;
- запрет по методу ОС.Очистить(), типа ОС.ЗапретОчистки(1) (1/0, возможность получения текущего флага очистки), если флажок установлен в 0, то ОС.Очистить() - отрабатывает без ошибок, но фактически очистку не производит (выдает код возврата = -1?) или выдает исключение и стоп работа...
.
???
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Djelf от 24 марта 2024, 14:18
И запрет кнопки reset тоже  ;D
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 24 марта 2024, 14:37
Полагаю, что достаточно будет в ПриВыводеСообщения добавить передачу расшифровки. Об этом я забыл.
Тогда можно будет вести свой полный лог. И можно не бояться закрытия и очистки ОС.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Злоп от 24 марта 2024, 14:57
ну или типа так
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 24 марта 2024, 15:54
Добавил расшифровку в ПриВыводеСообщения. В тестовой сборке.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Djelf от 03 апреля 2024, 11:28
Похоже с этими хотелками связано.
FormEx 2.0.5.198 забирал сегодня.
Процедуру ниже, повесил на кнопку. Нажал кнопку. В окно сообщений, естественно, вывалилась ошибка. Закрыл окно сообщений, нажал на кнопку повторно, получил вылет из 1С.
Обнаружено было в другом случае, тут упращенный вариант.
Кстати Сообщить(1/0); тоже приводит к вылету.
Процедура Вылет()
Сообщить("Вылет");
Сервис=СоздатьОбъект("Сервис");
Сервис.Ошибка();
КонецПроцедуры
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 03 апреля 2024, 11:39
Хм... Вроде правил этот момент. Посмотрю вечером.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 03 апреля 2024, 13:21
А у меня, к сожалению, перестало всегда переходить по клику на ошибку в модуле конфигуратора,
в сам конфигуратор переходит, а в модуль не всегда.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 03 апреля 2024, 20:16
Гляньте тестовую сейчас.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 03 апреля 2024, 20:43
Цитата: АЛьФ от 03 апреля 2024, 20:16Гляньте тестовую сейчас.

При Сообщить(1/0) у меня не падает.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 03 апреля 2024, 20:55
Цитата: item от 03 апреля 2024, 20:43
Цитата: АЛьФ от 03 апреля 2024, 20:16Гляньте тестовую сейчас.

При Сообщить(1/0) у меня не падает.

В конфигуратор теперь переходит нормально?
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 03 апреля 2024, 21:44
Цитата: АЛьФ от 03 апреля 2024, 20:55В конфигуратор теперь переходит нормально?

Так сразу не скажу, днём активно писал и заметил такое.
Завтра, на тестовой постоянно, вечером отпишусь.

За ПолучитьМодульОбъекта мой поклон, так даже интереснее, особенно в части модулей документов.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Djelf от 04 апреля 2024, 08:24
Цитата: АЛьФ от 03 апреля 2024, 20:16Гляньте тестовую сейчас.
Падать перестало.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: trdm от 04 апреля 2024, 10:52
Цитата: item от 03 апреля 2024, 21:44За ПолучитьМодульОбъекта мой поклон, так даже интереснее, особенно в части модулей документов.
А для чего это вообще?
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 04 апреля 2024, 11:05
Цитата: trdm от 04 апреля 2024, 10:52А для чего это вообще?
Для чего "ПолучитьМодульОбъекта"  или   для чего "в части модулей документов" ?
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Arbuz от 04 апреля 2024, 14:46
Цитата: item от 04 апреля 2024, 11:05
Цитата: trdm от 04 апреля 2024, 10:52А для чего это вообще?
Для чего "ПолучитьМодульОбъекта"  или   для чего "в части модулей документов" ?


Для чего и то, и другое?
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 04 апреля 2024, 15:43
Цитата: Arbuz от 04 апреля 2024, 14:46Для чего и то, и другое?

Вы сговорились?

1. Есть метод ПолучитьМодульВнешнейОбработки(<ПолныйПутьОбработки>). Я же не спрашиваю, зачем он, для кого, но он есть. Тогда, исходя из вселенского принципа суперсимметрии, должен быть и метод ПолучитьМодульВстроеннойОбработки(<ИмяОбработки>). Или не так?
2. По существу. У меня есть глобальные модули до 30000 строк. Письками меряться не нужно, уверен, у многих и по-больше. Задался целью разнести их по закоулочкам, внутри конфигурации. Кроме того, мне изрядно надоели инфинитивы глСправочник_Получить, глПропись_Установить, глВебСервер_Запустить и т.д. Для решения этой задачи использовал в/к V7Crypt Щербакова Анатолия Викторовича, которая декларирует необходимые возможности "из коробки", но впоследствии обнаружил ряд багов, с которыми устал бороться, и начал рассматривать для замены ВыполняемыйМодуль.
Я лично не знаю, как ВыполняемыйМодуль тактично запустить на модуле Обработки без подключения третьих компонент типа АктивМД. А Вы знаете?
3. Мне не нужны для этих целей классы. Класс имеет смысл, когда предполагается создание множества объектов, а в данном случае каждый модуль существует в единственном и неповторимом виде. Может, я что-то упустил на школьной скамейке?
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 04 апреля 2024, 16:09
Цитата: item от 04 апреля 2024, 15:431. Есть метод ПолучитьМодульВнешнейОбработки(<ПолныйПутьОбработки>). Я же не спрашиваю, зачем он, для кого, но он есть.

А я все равно расскажу. Этот метод появился как раз из-за необходимости загружать текст модуля внешней обработки в объект ВыполняемыйМодуль. У нас написан класс работы с регламентными заданиями. Изначально текст хранился в текстовый файлах, но постоянно натыкались на проблемы с проверкой синтаксиса. Поэтому было решено перенести модули во внешние обработки. Для этого был реализован этот метод.
Вот...
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 04 апреля 2024, 17:34
Цитата: АЛьФ от 04 апреля 2024, 16:09А я все равно расскажу. Этот метод появился как раз из-за необходимости загружать текст модуля внешней обработки в объект ВыполняемыйМодуль. У нас написан класс работы с регламентными заданиями. Изначально текст хранился в текстовый файлах, но постоянно натыкались на проблемы с проверкой синтаксиса. Поэтому было решено перенести модули во внешние обработки. Для этого был реализован этот метод. Вот...

Спасибо, Алексей Леонидович.
Компонента, как живой организм, как осьминог, под воздействием разных природных сил развивается и растёт во все стороны, и конечно имеет свою интересную биографию. Не зная этой истории, может крепко облажаться любой критик.
Понимаю, что каждому новичку рассказывать о каждом щупальце затруднительно, но, если позволите, иногда будут спрашивать, откуда ноги растут.


Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 04 апреля 2024, 18:21
Цитата: Arbuz от 04 апреля 2024, 14:46Для чего и то, и другое?

Что касается модуля документа, это один из немногих, а точнее всего двух, модулей конфигурации, который "не знает" про реквизиты формы, и поэтому в принципе может быть всегда откомпилирован в контексте документа без ошибок.
Применение на практике сходу не придумаю, но уверен, что кому-нибудь и пригодится.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: item от 04 апреля 2024, 21:07
Цитата: АЛьФ от 03 апреля 2024, 20:55В конфигуратор теперь переходит нормально?

Вроде всё в порядке.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Arbuz от 24 апреля 2024, 15:38
1) Можно ли реализовать получение Расшифровки методом ОкноСообщений.ПолучитьСтроку()?

2) Когда окно сообщений парковано и размер уменьшен до предела (грубо, до одной строки), то оно находится в каком-то особом состоянии (без полосы прокрутки, без возможности выделения). Можно ли как-то ловить события клик или двойной клик на нём? ПриДвойномКликеВОкнеСообщений() не срабатывает когда оно в таком состоянии.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: АЛьФ от 24 апреля 2024, 15:39
Цитата: Arbuz от 24 апреля 2024, 15:381) Можно ли реализовать получение Расшифровки методом ОкноСообщений.ПолучитьСтроку()?

2) Когда окно сообщений парковано и размер уменьшен до предела (грубо, до одной строки), то оно находится в каком-то особом состоянии (без полосы прокрутки, без возможности выделения). Можно ли как-то ловить события клик или двойной клик на нём? ПриДвойномКликеВОкнеСообщений() не срабатывает когда оно в таком состоянии.

1. Можно.
2. Нельзя.
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Arbuz от 22 мая 2024, 17:37
1)

ОкноСообщений.ПолучитьСтроку()
возвращает всегда 1, не зависимо от количества строк и значения первого параметра.

2)
При пустом окне сообщений, т.е. без строк
Процедура ПриНачалеРаботыСистемы()
...
    глОкноСообщений = СоздатьОбъект("ОкноСообщений");
    глОкноСообщений.ПодключитьСистемноеОкноСообщений();
    глОкноСообщений.Парковать(1);
    глОкноСообщений.УстановитьКоординаты(,,МинРазмерОкнаСообщений);
...
КонецПроцедуры  //ПриНачалеРаботыСистемы()

Процедура ПриДвойномНажатииЛевойКнопки(...)
...
    глОкноСообщений.УстановитьКоординаты(,,МинРазмерОкнаСообщений);

//возвращает 1 на пустом окне
    _КоличествоСтрок = глОкноСообщений.КоличествоСтрок();

    Если _КоличествоСтрок > 0 Тогда
        _ТекстСообщения = "";

//крашит 1С при любом значении первого параметра (0, -1 и т.д.)
        Если глОкноСообщений.ПолучитьСтроку(_КоличествоСтрок - 1, _ТекстСообщения) = 1 Тогда

...
КонецПроцедуры //ПриДвойномНажатииЛевойКнопки()
Если вывести хотя бы одну строку, 1С не падает
Название: Re: ХОТЕЛКА: ОкноСообщений, расширение методов в связи с расшифровками
Отправлено: Злоп от 17 января 2025, 15:36
@Djelf пишет что
"в 198й версии и 199й (06/10/24) в  ПриДвойномКликеВОкнеСообщений Расшифровка не передается." - то есть не работает, это так? кто-то еще проверял?