Напомните, пожалуйста, как в режиме предприятия получить "Описание" объекта метаданных (то что по пиктограмме ? или ПКМ на объекте в конфигураторе), было как-то вроде просто, а вот не помню...
.
И может у кого завалялась ВК, которая позволяла отражать Описание, сделанное с разметкой гипертекстом, с переходом по ссылкам (было такое) - поделитесь, плиз.
Есть РасширениеФормы::Описание.
Ступил... Почему-то искал метод типа ПолучитьОписание()...
Или я тупой, или есть косячок
Процедура ПослеОткрытия()
РФ = СоздатьОбъект("РасширениеФормы");
РФ.УстановитьФорму(Форма);
ЭтоЗаголовок = РФ.Заголовок;
ЭтоОписание = РФ.Описание;
Сообщить(ЭтоЗаголовок);
Сообщить(ЭтоОписание);
КонецПроцедуры // ПослеОткрытия
Описание в окно сообщений выводится пусто.
скрин: (https://i.ibb.co/1zk2X5n/2024-04-06-234655.png)
Formex - текущий.
Вот, допустим, внешняя обработка.
Как в ней мне получить Описание для объекта метаданных Справочник.Номенклатура...?
Цитата: Злоп от 06 апреля 2024, 23:48Ступил... Почему-то искал метод типа ПолучитьОписание()...
есть такой стандарт геттеры не предваряюся get-ом, только сеттеры.
в Qt к примеру используется.
или это просто соглашение? не помню. :)
Неожиданно любопытная тема.
1. Форма Описания. АктивныйКонтекст ее не берёт. А ведь интересная форма сама по себе.
Если структуру подменить каким-то образом, всё дерево вместе с содержимым, можно использовать Описание как альтернативную форму для чего-нибудь, например как форму справочника ИсторияВерсий, или вот, для Информатора, как проводник по свойствам и методам Классов. Это навкидку, деревья у нас уже есть, можно и обойтись, но всё таки - ещё одна перспективная вкусняшка. Может, копали уже в эту сторону?
2. HTML. Кроме АктивИкса на косячном "Shell.Explorer.2" и постоенных на нём в/к rbrowser и netainet (rik_inet), есть какие-нибудь ещё варианты Браузеров? Интересуюсь как начинающий веб-разработчик CMS на 77. Платформа таки умеет сохранить таблицу в HTML, пусть и не Dreamweaver, но всё таки. )
Решил, что стоит добить тему с получением из md.
Смотрите тестовую сборку.
Помню, что раньше же как-то получал, работало!
(некритично, но как-то неаккуратненько..) Сервис.СписокВсехФорм() - хорошо бы возвращать в тексте отсортированным по алфавиту, сейчас все идет вразброс, куча форм к одному объекту - в разных местах текста...
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМА"); // так работает
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМАСПИСКА.ОСНОВНАЯ"); // так возвращает пусто
.
какую форму надо указывать чтобы получить описание..? Непонятно...
Описание - оно же не к форме относится, оно одно - НА ОБЪЕКТ.
Было бы гораздо логичнее типа Сервис.ПолучитьОписаниеОбъекта("Справочник.Номенклатура");
.
Потому что непонятно, не посмотрев предварительно в СписокВсехФорм, что брать...
А так, например, перебираем через метаданные объекты и читаем через сервис описание, без обращения ко всяким формам...
Цитата: Злоп от 07 апреля 2024, 13:08(некритично, но как-то неаккуратненько..) Сервис.СписокВсехФорм() - хорошо бы возвращать в тексте отсортированным по алфавиту, сейчас все идет вразброс, куча форм к одному объекту - в разных местах текста...
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМА"); // так работает
Сервис.ПолучитьОписаниеОбъекта("СПРАВОЧНИК.НОМЕНКЛАТУРА.ФОРМАСПИСКА.ОСНОВНАЯ"); // так возвращает пусто
.
какую форму надо указывать чтобы получить описание..? Непонятно...
Описание - оно же не к форме относится, оно одно - НА ОБЪЕКТ.
Было бы гораздо логичнее типа Сервис.ПолучитьОписаниеОбъекта("Справочник.Номенклатура");
.
Потому что непонятно, не посмотрев предварительно в СписокВсехФорм, что брать...
А так, например, перебираем через метаданные объекты и читаем через сервис описание, без обращения ко всяким формам...
Боюсь, что тут ничего не исправить. Используется механизм, который не я писал. И вмешательство может многое порушить.
Тогда будем руководствоваться минимизацией ущерба. Проверю может прокатит для всех типа тутобъект.Форма. отпишусь.
Вот нашел у себя демо конфу с HtmlUserHelp.dll внутри. Есть даже исходники. Если кому надо - пишите - выложу сюда.
Ух ты, а мне казалось что эта штука полностью утеряна.
Не использовал... все равно справку никто не читает ;D
Конечно давай исходники, интересно на основе чего это сделано.
Эх... А тут ограничение на 128Кб для вложений стоит... Ща поищу место, куда выложить...
Вот выложил на google диск: https://drive.google.com/file/d/1-cw1RxJXoOoFZ3VFqwGOWl-ElUSYn-D7/view?usp=drive_link
Цитата: alyuev от 08 апреля 2024, 15:02Вот выложил на google диск: https://drive.google.com/file/d/1-cw1RxJXoOoFZ3VFqwGOWl-ElUSYn-D7/view?usp=drive_link
И эти туда же... Или не эти, а наши... Но у меня тунель до голландии прорыт, через него и стащил. Спасибо.
Цитата: alyuev от 08 апреля 2024, 13:38Вот нашел у себя демо конфу с HtmlUserHelp.dll внутри. Есть даже исходники...
М-да. Интересная история.
Кто знает, UzhasOfBuch хоть жив-здоров?
Провел изыскания (для СПРАВОЧНИК). Как и подозревал - получение Описания через
ПолучитьОписаниеОбъекта(<?>)
Синтаксис: ПолучитьОписаниеОбъекта(<ИмяОбъекта>)
Назначение:Метод предназначен для получения описания объекта конфигурации в виде строки.
Параметры:<ИмяОбъекта> - имя встроенного объекта, как оно возвращается в методе СписокВсехФорм().
Возвращает: Строку с описанием указанного объекта.
- не прокатывает...
а) у справочника вообще может не быть форм (упоминание форм отсутствует в ПолучитьОписаниеОбъекта(), например какой-то служебный справочник), а Описание - есть. Соответственно, нет возможности получить через имя формы.
б) у справочника может быть форма(ы), но только - форма(ы) списков, а формы элемента и формы группы - нет: ПолучитьОписаниеОбъекта("СПРАВОЧНИК.ДТЕСТОВИК.ФОРМАСПИСКА.ФОРМАСПИСКА123"); // или .ДЛЯВЫБОРА
возвращает пусто, хотя описание есть.
в) описание возвращается только для имени формы типа ПолучитьОписаниеОбъекта("СПРАВОЧНИК.ДТЕСТОВИК.ФОРМА") или ПолучитьОписаниеОбъекта("СПРАВОЧНИК.ДТЕСТОВИК.ФОРМА ГРУППЫ")
Таким образом, в общем случае Описание нельзя получить:
- для служебных справочников без форм; // чисто служебные справочники
- для справочников с формой списка, но без диалоговых форм элемента/группы // типа служебные справочники только для просмотра в списке
- для справочников типа "классификаторов", где редактирование только в списке, формы элемента/группы не предусмотрены
Итого: Описание надо получать каким-то другим способом. (маячок для
@АЛьФ)
Снова всплыла задача.
Получить Описание для формы внешней обработки.
И как?
РФ = СоздатьОбъект("РасширениеФормы");
РФ.УстановитьФорму(Форма);
Сообщить(РФ.Описание);
не работает, возвращает пусто.
Для внешней обработки Описание можно получить так (проверено, работает):
ИмяОбъекта = ВРег("Обработка.Загружаемая")+_GetPerformanceCounter();
глСервис.ЗагрузитьВнешнююОбработку(РасположениеФайла(),ИмяОбъекта);
//ОТЛАДКА Текст = глСервис.СписокВсехФорм(); Текст.Показать(ИмяОбъекта);
Описание = глСервис.ПолучитьОписаниеОбъекта(ИмяОбъекта+".ФОРМА");
Сообщить(Описание);
Может есть более простой вариант?
Цитата: Злоп от 17 января 2025, 22:26глСервис.ЗагрузитьВнешнююОбработку(РасположениеФайла(),ИмяОбъекта);
..но это адски времязатратная операция, в цикле из набора обработок вытаскивать описания - "в час по чайной ложке"... Да еще как MD отнесется когда в него на лету напихают сотню-тысячу обработок...
Цитата: Злоп от 17 января 2025, 23:39Цитата: Злоп от 17 января 2025, 22:26глСервис.ЗагрузитьВнешнююОбработку(РасположениеФайла(),ИмяОбъекта);
..но это адски времязатратная операция, в цикле из набора обработок вытаскивать описания - "в час по чайной ложке"... Да еще как MD отнесется когда в него на лету напихают сотню-тысячу обработок...
Файловые операции по любому займут прорву времени. Хоть напрямую читать описание, хоть через загрузку внешней обработки.
Возможно, быстрей получится прочитать через компоненту работы с COMPOUND.
А прикрепить эту компоненту (с описанием) есть возможность сюда?
Цитата: Злоп от 20 января 2025, 10:01А прикрепить эту компоненту (с описанием) есть возможность сюда?
У Фёдора она выложена: https://1c.alterplast.ru/download.html
Цитата: АЛьФ от 20 января 2025, 12:26У Фёдора она выложена: https://1c.alterplast.ru/download.html
муторно. требуется регистрация компоненты, и сходу в win64 зарегить не получается