Для чего используется контекстная подсказка
Новые возможности конфигуратора платформы «1С:Предприятие 8.3»(бесплатная статья по Программированию в 1С)
из цикла статей «Первые шаги в разработке на 1С»
О чем эта статья
Статья входит в цикл «Первые шаги в разработке на 1С». Она продолжает тему, затронутую в предыдущей статье, и описывает новые приёмы работы, которые появились в конфигураторе платформы «1С:Предприятие 8».
Прочитав статью, вы узнаете:
Применимость
В статье рассматривается возможности конфигуратора на примере платформы «1С:Предприятие» редакций 1C 8.3.5 – 8.3.11, поэтому вся информация актуальна.
Улучшения в конфигураторе платформы «1С:Предприятие 8.3»
При выпуске новой версии платформы «1С:Предприятие 8.3» разработчики добавили в нее несколько интересных и полезных нововведений, чтобы упростить ежедневный труд сотен разработчиков по всей стране.
Контекстная подсказка
Теперь при написании программного кода модуля в редакторе конфигуратора контекстная подсказка отображает не только допустимые в данном контексте имена переменных и процедур, но и параметры редактируемой в данный момент процедуры или функции.
Новая функциональность доступна как для встроенных процедур, так и для собственных процедур разработчика.
Подсказка со списком параметров выглядит следующим образом:
Для увеличения нажмите на изображение.
Параметр процедуры, который следует сейчас ввести, выделяется жирным шрифтом. Ниже под горизонтальной чертой располагается описание текущего параметра. Если он является обязательным, на этом акцентируется внимание при помощи текста в скобках.
При наличии нескольких вариантов синтаксиса встроенной процедуры в заголовке становятся доступны стрелки, предназначенные для переключения между этими вариантами.
Контекстная подсказка для параметров процедур и функций вызывается нажатием сочетания клавиш Ctrl + Shift + Пробел. Также ее можно вызвать автоматически при наборе символов “(“ и “, ”. Это поведение можно включить в диалоге параметров конфигуратора (пункт меню Сервис – Параметры, закладка Модули – Контекстная подсказка):
Следующей полезной особенностью новой контекстной подсказки является возможность отображать параметры пользовательских процедур и функций.
Для увеличения нажмите на изображение.
Напомним, что существует документ “Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8”, в котором описаны рекомендации фирмы “1С” к разрабатываемому программному коду.
В частности, есть рекомендации по оформлению комментария к заголовку процедуры.
Так, секция “Параметры” описывает параметры процедуры (функции). Если их нет, секция пропускается.
Предваряется строкой “Параметры:”, затем с новой строки размещаются описания всех параметров. Описание параметра начинается с новой строки, далее следуют имя параметра, затем дефис и список типов, далее – дефис и текстовое описание параметра.
// Подготовить форму ответа на существующее письмо.
//
// Параметры:
// ВходящееПисьмо – СправочникСсылка.ВходящиеПисьма – письмо, на которое следует ответить.
// ИсходящееПисьмо – СправочникСсылка.ИсходящееПисьмо – данные формы для типа СправочникСсылка.ИсходящееПисьмо,
// расположенные в форме редактора исходящего письма.
// Текст – ФорматированныйДокумент – поле редактора текста письма, расположенное в форме
// редактора исходящего письма.
Процедура ЗаполнитьОтветНаПисьмо(ВходящееПисьмо, ИсходящееПисьмо, Текст) Экспорт
И конфигуратор анализирует комментарии, написанные по таким правилам, и использует их для отображения контекстной подсказки!
Для увеличения нажмите на изображение.
Чтобы избежать ручного написания комментария по приведенному формату, в платформе предусмотрены шаблоны текста, ознакомиться с которыми можно, нажав сочетание клавиш Ctrl + Shift + T.
Шаблон с наименованием “Процедура (с заголовком)” как раз и формирует правильный комментарий.
Чтобы этот шаблон сработал, достаточно набрать в редакторе символы “Проц”, нажать Ctrl+Q и выбрать нужный шаблон из предлагаемого системой списка.
Группировка строк программного кода
Модули типовых решений на платформе “1С:Предприятие 8” достаточно объемные, содержат достаточно большое количество строк кода.
Для повышения удобства чтения и анализа программного кода были реализованы функции группировки условных и циклических операторов, а также процедур.
Платформа 8.3 предоставляет еще одну возможность – сгруппировать произвольные строки модуля в одну группу по логическому принципу, а затем свернуть ее, чтобы она занимала меньше места на экране для повышения читабельности текста.
Для выделения области текста введены две новые инструкции препроцессора #Область и #КонецОбласти.
Во время исполнения программного кода данные инструкции игнорируются. Они нужны только для обозначения сворачиваемых строк кода.
Для увеличения нажмите на изображение.
Нужно следить, чтобы группируемые области не пересекались между собой, потому что в таком случае они не будут сворачиваться на экране.
В конфигуратор добавлен шаблон текста для сокращения #Обл, который автоматически добавит в текст модуля инструкции по созданию новой области.
В диалоге параметров конфигуратора (пункт меню Сервис – Параметры, закладка Модули – Группировка) можно настроить группировку и сворачивание областей текста.
Выделение цветом конструкций
Теперь в редакторе текста на встроенном языке подсвечиваются цветом синтаксические конструкции, на которых в данный момент установлен курсор. Например, начало и конец процедуры (функции), условного оператора и оператора цикла:
Для увеличения нажмите на изображение.
Еще одним новшеством платформы является выделение цветом открывающихся и закрывающихся скобок. Это очень полезно при написании длинных выражений, когда синтаксический контроль сообщает об ошибке, и разработчику необходимо найти лишнюю или недостающую скобку.
Для увеличения нажмите на изображение.
В диалоге параметров конфигуратора (пункт меню Сервис – Параметры, закладка Модули – Редактирование) можно настроить выделение цветом еще нескольких полезных конструкций.
Если выбрать параметр “Текущий идентификатор” и назначить ему цвет, отличный от цвета фона редактирования (по умолчанию – белый), то при установке курсора на какой-либо идентификатор программного кода он сам выделяется выбранным цветом, а кроме того выделяются все такие же идентификаторы, встречающиеся в модуле, и строковые константы с заключенным в кавычки этим же идентификатором:
Для увеличения нажмите на изображение.
Также интерес представляет параметр “Выбранный идентификатор”. Если для него установлен цвет, не совпадающий с цветом фона редактирования, то при двойном щелчке мышью по идентификатору будет подсвечен и он, и все совпадающие идентификаторы в тексте модуля.
Для увеличения нажмите на изображение.
При выполнении поиска в тексте модуля при помощи строки поиска или после нажатия сочетания клавиш Ctrl + F найденное слово выделяется, а все такие же найденные слова подсвечиваются.
Для увеличения нажмите на изображение.
Объединение ячеек табличного документа
Ранее ячейки табличного документа можно было объединить только с помощью пункта меню или соответствующей кнопки командной панели.
Теперь появилось сочетание клавиш Ctrl + M, при нажатии которого и происходит объединение ячеек табличного документа. Также операция “Объединить” доступна в контекстном меню табличного документа.
Надеемся, что и в следующих релизах платформы «1С:Предприятие 8» разработчики будут уделять внимание повышению удобства работы с конфигуратором.
Новые возможности для разработчика в «1С:Предприятие 8.3.5»
Поиск в конфигураторе
Пользоваться поиском при конфигурировании приходится постоянно. Пока конфигурация содержит относительно небольшое количество объектов метаданных, можно осуществлять поиск визуально – глазами, прокручивая дерево конфигурации.
Однако типовые конфигурации достаточно объемны, и при таком подходе поиск будет занимать длительное время.
До выхода платформы 8.3.5 поиск по дереву метаданных можно было осуществить следующим образом:
Найденные объекты будут выведены в окно Результаты поиска, из которого по двойному щелчку мышью можно перейти к нужному объекту метаданных в дереве конфигурации.
В платформе 8.3.5 появилось новое поле поиска, расположенное над деревом конфигурации:
Поиск выполняется по вхождению строки, анализируются свойствам объектов конфигурации Имя, Синоним и Комментарий.
Причем дерево конфигурации фильтруется “на лету”: в нем остаются только объекты, удовлетворяющие введенному фильтру.
Рассмотрим, что обозначают цвета, которыми раскрашены объекты, оставшиеся в дереве после применения фильтра.
Если строка поиска была найдена, то имя такого объекта выделяется в дереве конфигурации черным цветом.
Если кроме того искомая строка присутствует в имени объекта (не в синониме, не в комментарии), то такие вхождения выделяются красным цветом.
Серым цветом выделяются объекты, сами не подходящие под введенный фильтр, но имеющие в своем составе подчиненные (дочерние) объекты, удовлетворяющие заданному фильтру.
На приведенном выше рисунке реквизит ИдентификаторПользователяИБ справочника Пользователи отображается в дереве, т.к. его синоним содержит подстроку “пост”:
Допустимо вводить для поиска несколько подстрок, разделенных пробелами:
Аналогичная строка поиска появилось и у окна, содержащего набор свойств выделенного объекта (палитра свойств):
Найденные свойства будут выведены общим списком, без разбивки по категориям.
Поиск будет осуществляться либо по именам свойств, либо по представлениям свойств (разница приведена на двух скриншотах выше).
Переключиться между режимами имя/представление можно с помощью команды “Отображать имена свойств” контекстного меню:
Такая же строка поиска была добавлена в окне выбора типа данных:
И в окно выбора объекта метаданных (например, выбора регистра сведений, который будет использоваться в качестве графика для регистра расчета):
Быстрое отображение объектов подсистемы
Для быстрого отображения объектов, входящих в одну конкретную подсистему, в контекстном меню появился новый пункт “Объекты подсистемы”:
Напомним, как такого можно было добиться в предыдущих версиях платформы.
Нужно было открыть окно отбора по подсистемам, установить в нем галочку на требуемую подсистему, со всех остальных подсистем галочки снять:
Теперь получить тот же самый результат можно быстрее. Кроме того, чаще всего используется и наиболее востребован отбор именно по одной подсистеме.
А, следовательно, это маленькое удобное новшество сэкономит время разработчика.
Быстрое отображение объектов, захваченных в хранилище
Если конфигурация подключена к хранилищу, то в командной панели над самим деревом конфигурации доступна кнопка “Захваченные объекты”:
Теперь фильтрация выполняется непосредственно в дереве конфигурации, не нужно открывать отдельное окно для работы с хранилищем, в нем устанавливать отборы на захваченные объекты.
Инструменты рефакторинга
Когда над конфигурацией работает группа из нескольких разработчиков, необходимо следить за понятностью кода, следованием общим стандартам.
Контролировать это постоянно не всегда возможно, поэтому периодически проводятся работы по улучшению читаемости кода, пересмотру уже реализованных фрагментов.
Такие действия именуются рефакторингом кода. Это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы.
Кроме этого разработчикам предстоит выполнить в своих конфигурациях работу по отказу от модальности – устранению модальных вызовов.
Поэтому в конфигураторе платформы 8.3.5 появились механизмы рефакторинга кода и инструменты работы с модальными вызовами.
Они доступны в контекстном меню текстового редактора конфигуратора в отдельном меню Рефакторинг.
Для увеличения нажмите на изображение.
Рассмотрим подробнее реализованные инструменты рефакторинга.
1. Выделить фрагмент
Эта команда преобразует выделенный участок кода в отдельную процедуру или функцию.
Если процедура, внутри которой расположен выделенный участок, содержит директиву компиляции (&НаКлиенте, &НаСервере и т.д.), то создаваемая процедура или функция будет иметь такую же директиву компиляции.
Если выделенный участок кода может быть расположен в правой части оператора присваивания, то будет создаваться функция. Рассмотрим пример. Пусть есть фрагмент кода:
Синтакс-Помощник, контекстная подсказка и отладчик.
Начиная осваивать 1С обращаешь внимание в первую очередь на: локальные и глобальные переменные, циклы и условия, функции. Все это очень важно, но упускаем из виду такие вещи как : Синтакс-помощник, контекстная подсказка, отладчик.
Упуская которые на начальных этапах мы сами себя тормозим в освоении 1С. Сейчас я в коротко расскажу о них.
Синтакс-помощник это главный инструмент, которым должен овладеть начинающий разработчик. Синтаксис-помощник это часть встроенной справки, предназначена для получения информации об объектах встроенного языка, их свойствах, методах и связанных с ними событиях.
— находить описания объектов встроенного языка выбором из дерева объектов;
— находить описания объектов встроенного языка поиском по подстроке;
— открыв в текстовом редакторе программный модуль, установить курсор на интересующую конструкцию встроенного языка и по контекстному меню или горячей клавише (Ctr+F1) сразу перейти к описанию этой конструкции в синтакс-помощнике.
Контекстная подсказка, которая позволяет в процессе ввода текста или при нажатии (Ctr+Пробел) выводится контекстный список, позволяющий выбирать нужное свойство, метод, функцию и т.д., что позволяет быстро и правильно набирать тексты модулей.
Цветовые выделения в контекстной подсказке свойство, метод, функции ….
Красный – Текущий модуль.
Зеленый – Локальный контекст.
Не забываем настроить контекстную подсказку в конфигураторе Сервис – Параметры – Модули – Контекстная подсказка.
Третий наш друг это Отладчик. Отладчик является встроенным в конфигуратор инструментом. Он помогает проверять работу алгоритмов создаваемых в процессе разработки, производить анализ алгоритмов, выявлять ошибки, отслеживать последовательность выполнения операторов встроенного языка и просматривать значения переменных.
Отладчик можно запускать для разных клиентов, также и подключатся к предмету отладки.
Писать можно еще много и каждый из этих инструментов заслуживает особого внимания, но это уже другая история.
Kite: контекстные подсказки и автодополнение при написании кода
Во время написания кода часто приходится открывать Google, искать образцы кода, документацию и подсказки. Разработчики приложения Kite предлагают продвинутое решение — интерактивный «помощник», который в процессе набора кода в фоновом режиме вытягивает контекстную информацию из общедоступных образцов кода в интернете (и из кодовой базы текущего проекта) и показывает на экране в удобном виде.
Kite интегрируется в редактор кода и консоль.
На странице Privacy разработчики Kite объясняют, что весь набранный в программе код отправляется на серверы Kite по https, а компания обещает не использовать его никоим образом. Но всё равно кое у кого такая система вызывает некоторые опасения, ведь даже команды из консоли отправляются им на сервер в полном составе.
Но удобство Kite, наверное, перевешивает потенциальные угрозы безопасности.
Здесь и примеры кода, и документация, и ссылки на наиболее часто задаваемые вопросы.
Kite автоматически фиксирует и предлагает исправить опечатки в коде.
В качестве приятного бонуса — подсказки к командам в консоли.
Приложение Kite поддерживает редакторы Sublime Text, emacs, vim, PyCharm и Atom, а также интегрируется в Terminal.app и iTerm. Все плагины лежат в официальном репозитории.
Самый главный недостаток — пока что Kite поддерживает только Python и работает только под OS X. В ближайшее время разработчики обещают увеличить количество языков и добавить поддержку Linux и Windows. Это необходимо сделать как можно быстрее!
Для чего используется контекстная подсказка
Подсветка текущего идентификатора
Позволяет подсвечивать текущий идентификатор выбранным цветом.
Выделяются все идентикаторы у которых такое же имя.
Очень удобно для поиска идентификатора по тексту кода.
Отладка под определенным пользователем
Позволяет запускать отладку под определенным пользователем.
Незаменимо когда ошибка появляетося только у определенного пользователя или когда пользователю не хватает прав, но неизвестно каких.
Работа с открытыми окнами в конфигураторе
Позволяет расположить окна в удобном виде.
Выделить их все и закрыть.
Форматирование текста кода
Выделить нужный фрагмент кода и нажать Alt+Shift+F
Предположим, вы дорабатываете незнакомую конфигурацию и в каком-то модуле вам попался неотформатированный текст. Вам трудно в нем разобраться и вы хотите улучшить его читаемость, да и вообще сделать более «приличным».
В этом случае вам не нужно вручную двигать строки текста с помощью клавиши Tab, так как это гораздо удобнее и быстрее сделать с помощью форматирования блока текста.
Для этого выделите этот фрагмент текста (или сразу весь модуль – Ctrl + A) и нажмите кнопку Форматировать (Alt + Shift + F) в командной панели Текст.
Вывод списка всех процедур модуля + заготовки предопределенных процедур
Вернуться в исходное место после команды «Перейти к определению».
Во время анализа кода мы хотим посмотреть что за процедура или функция вызывается. Жмем ПКМ и выбираем перейти к определению и переходим к нужной процедуре/функции.
Но после просмотра функции мы хотим вернуться обратно. Для этого жмем «CTRL» + «-«:
Посмотреть где используется выделенная процедура/функция
Откуда была вызвана процедура/функция? Стек вызовов.
Допустим что в этой процедуре у нас ошибка мы ставим точку останова, но видим что в процедуру уже поступают неверные параметры.
Нужно узнать откуда была вызвана данная процедура. Вызываем стек вызовов:
Видим все процедуры из которорых мы перешли к текущей:
Вырезать часть кода в отдельную процедуру/функцию
Мы хотим часть кода вывести в отдельную процедуру чтобы использовать ее в других процедурах.
Для этого выделим нужную часть, вызовем контекстное меню и сделаем так:
Закладки и перейти к строке.
Бывает что код достаточно большой и нужно «прыгать» от одного места к другому.
Искать место глазами совсем неудобно.
Лучше воспользоваться следующими инструментами.
1 Переход к строке.
Запоминаем номер строки, он написан в правой нижней части экрана
Жмем в любом месте этого модуля кнопку или сочетание клавиш
В нужной строке жмем Alt+F2 либо через меню
Переход по закладкам горячие клавиши:
Остановить отладчик до наступления ошибки.
Отладчик будет остановлен на строке на которой будет ошибка.
Проверим что скажет отладчик.
и остановит процедуру на нужной строке
Вычислять выражение не меняя код.
В контекстном меню при остановке отладчика есть команда «Вычислить выражение». Shift+F9
В поле «Выражение» мы можем написать любой код и тут же получить ответ. Например:
Контекстная подсказка по параметрам
Принудительно вызвать обычную контекстную подсказку: CTRL+Пробел
При изменении объекта метаданных отключить автоматический поиск ссылок на него.
Инструмент безусловно полезный, но нужен он не всегда.
Отключается в Сервис-Параметры. Убрать галочки в группе «Рефакторинг при изменениях в метаданных и формах»: