Показать подсказку программно 1с
Одним из самых "комфортных" для программиста нововведений свежеиспеченной платформы стала реализация возможности контекстной подсказки по параметрам процедуры или функции. Мы все этого очень долго ждали, и хочется от души поблагодарить разработчиков за эту приятную неожиданность ;-)
Давайте скорей разбираться в том, как это работает.
В момент редактирования процедуры или функции в редакторе текстов модулей отображается всплывающая подсказка, как на рисунке:
Итак, контексная подсказка сообщает нам:
1. Мы работаем с Функцией;
2. Сейчас необходимо ввести параметр ТекстВопроса - это обязательный параметр;
3. ТекстВопроса может принимать значения с типом ФорматированнаяСтрока, Строка;
4. Отображает все остальные параметры, которые необходимо передать функции.
- Если параметр обязателен к заполнению, в контекстной подсказке к его наименованию добавляется постфикс (Обязательный), в противном случае подсказка отображает только наименование текущего параметра;
- Очень хочется, но пока возможности отображения типа возвращаемого элемента функции нет;
- Если процедура/функция/конструктор имеет несколько вариантов определения, отображается переключатель:
- В контекстной подсказке отображатся ссылки на описание типа текущего параметра в синтаксис-помощнике;
- Если используется подсказка по конструктору, то отображается почему-то "Функция";
- Если используется подсказка по процедуре, то само слово "Процедура" почему-то не выделяется красным цветом, как "Функция";
- По умолчанию, контекстная подсказка отображается автоматически при наборе "(" и ", ". Есть возможность управлять этой опцией в параметрах конфигуратора:
- Принудительно вызвать контексную подсказку можно нажатием клавиш (Ctrl + Shift + Space) - упоминания об этом во встроенной справке не нашел :(;
- Контекстная подсказка работает для как для встроенных процедур/функций/методов объектов/конструкторов, так и для пользовательских, но при этом, для того, чтобы получить информацию о типах параметров и их описание, требуется соответствие формату комментирования, описанных в документе
1. Если вообще ничего не описывать, то получим следующую картину:
Как видим, не очень-то информативно, но хоть что-то.
2. Если опишем комментарий перед функцией:
То есть, формат оформления должен быть следующим:
// Параметры:
// - % (тип параметра) - % (описание параметра)
// - % (описание параметра)
% - любой набор символов
"жирным" выделены обязательные "литералы"
Специальные предложения
Если мне память не изменяет, то вроде VS 2003 умела еще это делать в каком году? в 2003 вроде? не? :) И вроде, насколько я помню, в комментах перед методами ничего не нужно было ставить, а параметры методов сами расчухивались.
Хотя сейчас да, прикольно стало. Особенно сворачивание кусков кода в секции.
Осталось дождаться когда можно будет отладчиком в обратную сторону ходить, и все - можно уходить на пенсию. Жизнь прожили не зря!
(1) (0) Неужели грядёт долгожданный штатный Телепат, от того самого, которого все знают.
Если мне память не изменяет, что-то подобное уже было в Delphi, VisualFoxpro и ещё где-то в начале 2000-х.
Осталось дождаться когда можно будет отладчиком в обратную сторону ходитьЭто простите как?
Это было еще в Visual C++ 4.2, 1996 или 97 года.А так да, дождались!
Хотелось бы еще уточнить, как подсказка ведет себя, если не может вычислить тип выражения? (3) orefkov, Да как обычно. ЗабЪет на все. А браузер рефакторинга (выделение метода) еще для smalltalk в 90-х был. 1С на запад собралось. Глядишь в 9.0 не будет русского языка.
А вот описание параметров, полей классов, методов действительно появилось в какой-то там студии и описывалось специальной разметкой, похожей на XML за символами /// (тройной слэш)
Ждем полноценный IntelliSence от 1С
(4) Да ты что? Возьми современный IDE и посмотри как JavaScript и посмотри, как они типы переменных подсказывают. (13) Да бред сумасшедшего. Понять может лишь другой сумасшедший и психиатр. Не обращай внимания. ;)(4) спасибо за разъяснения.
Сейчас вы можете трейсить по ходу выполнения алгоритма. Однако, часто бывают случаи, когда вам очень бы хотелось посмотреть картинку, прокрученную назад.
Напр., из последнего: сидите вы где-то в типовой конфе с внедренной БСП. И где-то там в потрохах, внезапно вам потребовалось разобраться с вопросом - а почему вот эта штука вот тут работает так? Вы начинаете "слаломить" по какому-то ключевому слову. Нашли все вхождения - затем начинаете открывать их, читать, фтыкать. Затем начинаете промечать точками останова все эти места. И наконец, когда все это вы проделали, далее, вы начинаете трейсить. Естественно, что даже где-то там в потрохах вы остановитесь, но возникает вопрос - а как вы туда попали? Сейчас это можно посмотреть по стеку вызову. Однако, следует понять, что стек вызова - только помогалка. Он вам скажет - я залетел сюда из вот этой процедуры/функции. Вы заходите туда, ставите опять точку останову, опять читаете-фтыкаете, и так - каждый раз. Рекурсивно, без выхода из цикла, пока, наконец, у вас в голове не построится четка цепочка алгоритма для трейсинга. В VS на эту тему давно придумали отладку назад - т.е. вы первый раз попали на точку останова, и уже дальше в обратную сторону по шагам, начинаете проматывать алгоритм. Уходит тысяча лишних и не нужных движений, которые я описал выше. Но на все это можно забить, если вы серьезно, что-то не трейсили типовое :))
Для полей ввода (за исключением поля типа «Дата» и «Булево») можно написать подсказку прямо в этом поле (когда оно не заполнено):
Подсказка отображается прямо в поле ввода «сереньким» цветом, при вводе значения – пропадет.
Используйте свойств элемента «ПодсказкаВвода»:
На мой взгляд, появилась очень интересная возможность отображения подсказки в виде кнопки
Такой вариант более привлекателен (в части привлечения внимания) – пользователь точно знает, что для получения подсказки надо нажать на кнопку:
Для этого заполним свойство «Подсказка» и в свойство «ОтображениеПодсказки» выберем из списка значение «Кнопка»:
Там же можно указать отображать сверху, слева, снизу, справа
Вот так выглядит «Отображать сверху»:
Еще появилась, так называемая, расширенная подсказка – текст подсказки можно раскрашивать, вставлять гиперссылки и рисунки и т.п.
В конфигураторе в контекстном меню элемента формы выберем пункт «Показать расширенную подсказку»
«Поле» развернется и появится расширенная подсказка:
В расширенной подсказке можно использовать гиперссылку, раскрашивать:
Но самое интересное то, что расширенная подсказка – это форматированная строка
Внимание! Для того, чтобы расширенная подсказка отображалась (и отображалась правильно), необходимо указать в свойстве элемента «ОтображениеПодсказки» значение «Кнопка» (см.выше).
Irina_ --> Irina_Есть форма, на которую выводится ТЗ, заполняется полностью программно, т.е. колонки и строки изменяются динамически.
Возможно ли реализовать ситуацию - чтоб при наведении курсора на ячейку всплывала подсказка?
В какой стороне хоть искать ответ?))
Спасибо ) DartRomanius --> DartRomanius
Есть форма, на которую выводится ТЗ, заполняется полностью программно, т.е. колонки и строки изменяются динамически.
Возможно ли реализовать ситуацию - чтоб при наведении курсора на ячейку всплывала подсказка?
В какой стороне хоть искать ответ?))
Спасибо )
Хотя-бы платформу в студию. А то телепатией заниматься неохота.
Irina_ --> Irina_8.1 переконвертированная в 8.2. Управление торговлей ) MATEVI --> MATEVI
8.1 переконвертированная в 8.2. Управление торговлей )
Ага, то есть не управляемые формы?
Irina_ --> Irina_нет, не управляемые.
К примеру ситуация такая - есть список пользователей - это колонки..
Есть справочник документов (например нарядов) - это строки .
При открытии формы строится табличка - выбираются все пользователи и по строкам за определенный период выбираются документы.
В ячейках галочки. Когда пользователь напротив себя и документа ставит галочку - мол ознакомился и согласен - в регистр сведений записывается дата, когда галка поставлена, пользователь и документ.
Опять же при открытии формы уже имеющиеся галки выбирая данные из регистра устанавливаются на форме.
Можно ли сделать так чтоб при наведении курсора на галку в всплывающей подсказке высвечивалась дата когда галка была установлена.
Ну вот как-то так
Читайте также: