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

Обсуждение проектов => FormEx => Тема начата: Злоп от 06 апреля 2024, 17:02

Название: Получить <Описание> -напомните...
Отправлено: Злоп от 06 апреля 2024, 17:02
Напомните, пожалуйста, как в режиме предприятия получить "Описание" объекта метаданных (то что по пиктограмме ? или ПКМ на объекте в конфигураторе), было как-то вроде просто, а вот не помню...
.
И может у кого завалялась ВК, которая позволяла отражать Описание, сделанное с разметкой гипертекстом, с переходом по ссылкам (было такое) - поделитесь, плиз.
Название: Re: Получить <Описание> -напомните...
Отправлено: АЛьФ от 06 апреля 2024, 20:56
Есть РасширениеФормы::Описание.
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 06 апреля 2024, 23:48
Ступил... Почему-то искал метод типа ПолучитьОписание()...
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 06 апреля 2024, 23:53
Или я тупой, или есть косячок
Процедура ПослеОткрытия()

РФ = СоздатьОбъект("РасширениеФормы");
РФ.УстановитьФорму(Форма);
ЭтоЗаголовок = РФ.Заголовок;
ЭтоОписание = РФ.Описание;
Сообщить(ЭтоЗаголовок);
Сообщить(ЭтоОписание);

КонецПроцедуры // ПослеОткрытия

Описание в окно сообщений выводится пусто.
скрин: (https://i.ibb.co/1zk2X5n/2024-04-06-234655.png)

Formex - текущий.
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 06 апреля 2024, 23:56
Вот, допустим, внешняя обработка.
Как в ней мне получить Описание для объекта метаданных Справочник.Номенклатура...?
Название: Re: Получить <Описание> -напомните...
Отправлено: trdm от 07 апреля 2024, 08:02
Цитата: Злоп от 06 апреля 2024, 23:48Ступил... Почему-то искал метод типа ПолучитьОписание()...
есть такой стандарт геттеры не предваряюся get-ом, только сеттеры.
в Qt к примеру используется.
или это просто соглашение? не помню. :)
Название: Re: Получить <Описание> -напомните...
Отправлено: item от 07 апреля 2024, 08:37
Неожиданно любопытная тема.

1. Форма Описания. АктивныйКонтекст ее не берёт. А ведь интересная форма сама по себе.
Если структуру подменить каким-то образом, всё дерево вместе с содержимым, можно использовать Описание как альтернативную форму для чего-нибудь, например как форму справочника ИсторияВерсий, или вот, для Информатора, как проводник по свойствам и методам Классов. Это навкидку, деревья у нас уже есть, можно и обойтись, но всё таки - ещё одна перспективная вкусняшка. Может, копали уже в эту сторону?

2. HTML. Кроме АктивИкса на косячном "Shell.Explorer.2" и постоенных на нём в/к rbrowser и netainet (rik_inet), есть какие-нибудь ещё варианты Браузеров?  Интересуюсь как начинающий веб-разработчик CMS на 77. Платформа таки умеет сохранить таблицу в HTML, пусть и не Dreamweaver, но всё таки. )
Название: Re: Получить <Описание> -напомните...
Отправлено: АЛьФ от 07 апреля 2024, 10:16
Решил, что стоит добить тему с получением из md.
Смотрите тестовую сборку.
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 07 апреля 2024, 12:47
Помню, что раньше же как-то получал, работало!
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 07 апреля 2024, 13:08
(некритично, но как-то неаккуратненько..) Сервис.СписокВсехФорм() - хорошо бы возвращать в тексте отсортированным по алфавиту, сейчас все идет вразброс, куча форм к одному объекту - в разных местах текста...
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМА"); // так работает
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМАСПИСКА.ОСНОВНАЯ"); // так возвращает пусто
.
какую форму надо указывать чтобы получить описание..? Непонятно...
Описание - оно же не к форме относится, оно одно - НА ОБЪЕКТ.
Было бы гораздо логичнее типа Сервис.ПолучитьОписаниеОбъекта("Справочник.Номенклатура");
.
Потому что непонятно, не посмотрев предварительно в СписокВсехФорм, что брать...
А так, например, перебираем через метаданные объекты и читаем через сервис описание, без обращения ко всяким формам...
Название: Re: Получить <Описание> -напомните...
Отправлено: АЛьФ от 07 апреля 2024, 18:52
Цитата: Злоп от 07 апреля 2024, 13:08(некритично, но как-то неаккуратненько..) Сервис.СписокВсехФорм() - хорошо бы возвращать в тексте отсортированным по алфавиту, сейчас все идет вразброс, куча форм к одному объекту - в разных местах текста...
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМА"); // так работает
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМАСПИСКА.ОСНОВНАЯ"); // так возвращает пусто
.
какую форму надо указывать чтобы получить описание..? Непонятно...
Описание - оно же не к форме относится, оно одно - НА ОБЪЕКТ.
Было бы гораздо логичнее типа Сервис.ПолучитьОписаниеОбъекта("Справочник.Номенклатура");
.
Потому что непонятно, не посмотрев предварительно в СписокВсехФорм, что брать...
А так, например, перебираем через метаданные объекты и читаем через сервис описание, без обращения ко всяким формам...

Боюсь, что тут ничего не исправить. Используется механизм, который не я писал. И вмешательство может многое порушить.
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 07 апреля 2024, 23:20
Тогда будем руководствоваться минимизацией ущерба. Проверю может прокатит для всех типа тутобъект.Форма. отпишусь.
Название: Re: Получить <Описание> -напомните...
Отправлено: alyuev от 08 апреля 2024, 13:38
Вот нашел у себя демо конфу с HtmlUserHelp.dll внутри. Есть даже исходники. Если кому надо - пишите - выложу сюда.
Название: Re: Получить <Описание> -напомните...
Отправлено: Djelf от 08 апреля 2024, 14:28
Ух ты, а мне казалось что эта штука полностью утеряна.
Не использовал... все равно справку никто не читает  ;D
Конечно давай исходники, интересно на основе чего это сделано.
Название: Re: Получить <Описание> -напомните...
Отправлено: alyuev от 08 апреля 2024, 14:53
Эх... А тут ограничение на 128Кб для вложений стоит... Ща поищу место, куда выложить...
Название: Re: Получить <Описание> -напомните...
Отправлено: alyuev от 08 апреля 2024, 15:02
Вот выложил на google диск: https://drive.google.com/file/d/1-cw1RxJXoOoFZ3VFqwGOWl-ElUSYn-D7/view?usp=drive_link
Название: Re: Получить <Описание> -напомните...
Отправлено: Djelf от 08 апреля 2024, 15:10
Цитата: alyuev от 08 апреля 2024, 15:02Вот выложил на google диск: https://drive.google.com/file/d/1-cw1RxJXoOoFZ3VFqwGOWl-ElUSYn-D7/view?usp=drive_link
И эти туда же... Или не эти, а наши... Но у меня тунель до голландии прорыт, через него и стащил. Спасибо.
Название: Re: Получить <Описание> -напомните...
Отправлено: item от 08 апреля 2024, 20:31
Цитата: alyuev от 08 апреля 2024, 13:38Вот нашел у себя демо конфу с HtmlUserHelp.dll внутри. Есть даже исходники...

М-да. Интересная история.
Кто знает,  UzhasOfBuch хоть жив-здоров?
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 17 апреля 2024, 23:27
Провел изыскания (для СПРАВОЧНИК). Как и подозревал - получение Описания через

ПолучитьОписаниеОбъекта(<?>)
Синтаксис: ПолучитьОписаниеОбъекта(<ИмяОбъекта>)
Назначение:Метод предназначен для получения описания объекта конфигурации в виде строки.
Параметры:<ИмяОбъекта> - имя встроенного объекта, как оно возвращается в методе СписокВсехФорм().
Возвращает: Строку с описанием указанного объекта.

- не прокатывает...

а) у справочника вообще может не быть форм (упоминание форм отсутствует в ПолучитьОписаниеОбъекта(), например какой-то служебный справочник), а Описание - есть. Соответственно, нет возможности получить через имя формы.

б) у справочника может быть форма(ы), но только - форма(ы) списков, а формы элемента и формы группы - нет: ПолучитьОписаниеОбъекта("СПРАВОЧНИК.ДТЕСТОВИК.ФОРМАСПИСКА.ФОРМАСПИСКА123"); // или .ДЛЯВЫБОРА
возвращает пусто, хотя описание есть.

в) описание возвращается только для имени формы типа ПолучитьОписаниеОбъекта("СПРАВОЧНИК.ДТЕСТОВИК.ФОРМА") или ПолучитьОписаниеОбъекта("СПРАВОЧНИК.ДТЕСТОВИК.ФОРМА ГРУППЫ")

Таким образом, в общем случае Описание нельзя получить:
- для служебных справочников без форм; // чисто служебные справочники
- для справочников с формой списка, но без диалоговых форм элемента/группы // типа служебные справочники только для просмотра в списке
- для справочников типа "классификаторов", где редактирование только в списке, формы элемента/группы не предусмотрены

Итого: Описание надо получать каким-то другим способом. (маячок для @АЛьФ)

Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 17 января 2025, 22:09
Снова всплыла задача.
Получить Описание для формы внешней обработки.
И как?

   РФ = СоздатьОбъект("РасширениеФормы");
   РФ.УстановитьФорму(Форма);
   Сообщить(РФ.Описание);   

не работает, возвращает пусто.
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 17 января 2025, 22:26
Для внешней обработки Описание можно получить так (проверено, работает):

   ИмяОбъекта = ВРег("Обработка.Загружаемая")+_GetPerformanceCounter();
   глСервис.ЗагрузитьВнешнююОбработку(РасположениеФайла(),ИмяОбъекта);
   //ОТЛАДКА Текст = глСервис.СписокВсехФорм(); Текст.Показать(ИмяОбъекта);
   Описание = глСервис.ПолучитьОписаниеОбъекта(ИмяОбъекта+".ФОРМА");
   Сообщить(Описание);

Может есть более простой вариант?
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 17 января 2025, 23:39
Цитата: Злоп от 17 января 2025, 22:26глСервис.ЗагрузитьВнешнююОбработку(РасположениеФайла(),ИмяОбъекта);
..но это адски времязатратная операция, в цикле из набора обработок вытаскивать описания - "в час по чайной ложке"... Да еще как MD отнесется когда в него на лету напихают сотню-тысячу обработок...
Название: Re: Получить <Описание> -напомните...
Отправлено: АЛьФ от 20 января 2025, 09:47
Цитата: Злоп от 17 января 2025, 23:39
Цитата: Злоп от 17 января 2025, 22:26глСервис.ЗагрузитьВнешнююОбработку(РасположениеФайла(),ИмяОбъекта);
..но это адски времязатратная операция, в цикле из набора обработок вытаскивать описания - "в час по чайной ложке"... Да еще как MD отнесется когда в него на лету напихают сотню-тысячу обработок...

Файловые операции по любому займут прорву времени. Хоть напрямую читать описание, хоть через загрузку внешней обработки.
Возможно, быстрей получится прочитать через компоненту работы с COMPOUND.
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 20 января 2025, 10:01
А прикрепить эту компоненту (с описанием) есть возможность сюда?
Название: Re: Получить <Описание> -напомните...
Отправлено: АЛьФ от 20 января 2025, 12:26
Цитата: Злоп от 20 января 2025, 10:01А прикрепить эту компоненту (с описанием) есть возможность сюда?
У Фёдора она выложена: https://1c.alterplast.ru/download.html
Название: Re: Получить <Описание> -напомните...
Отправлено: Злоп от 24 января 2025, 21:33
Цитата: АЛьФ от 20 января 2025, 12:26У Фёдора она выложена: https://1c.alterplast.ru/download.html
муторно. требуется регистрация компоненты, и сходу в win64 зарегить не получается