Введение
Многие разработчики, при начальном старте в профессию, не уделяют должного внимания деталям платформы 1С. Изучается синтаксис, язык запросов, СКД, Управляемые формы и многое другое, но очень часто пропускаются важные особенности, помогающие облегчить написание и отладку программного кода. Итак, в данной заметке предлагаю ознакомиться с рядом полезных, на мой взгляд, платформенных фич.
Горячие клавиши
Давайте разберем некоторые особые комбинации клавиш, которые могут серьёзно облегчить разработку и ускорить процесс написания кода. В данной главе я не буду приводить примеры популярных сочетаний, таких как ctrl+A, ctrl+C, ctrl+V и прочее. Однако многие комбинации, думаю, Вы и так можете знать. Вообще, в интернетах существует масса статей на тему горячих клавиш, где подробно описаны назначения каждого сочетания. Здесь я решил показать комбинации, используемые лично мной в работе чаще всего.
1. Одна из самых популярных комбинаций: ctrl+"Пробел". Находясь в модуле объекта, менеджера и других модулях удобно использовать данную комбинацию для вызова контекстной подсказки. При вводе первых символов существующего свойства, метода, объекта, переменной зажимаем ctrl+"Пробел" и полное наименование подтянется автоматом, либо всплывет подсказка с удобной навигацией (Рисунок 1).
Рисунок 1 - Использование контекстной подсказки
2. Следующее полезное сочетание клавиш - alt+F. Комбинация очень близка к известной комбинации поиска ctrl+F, однако ее особенность заключается в удобстве фильтрации ссылок в динамическом списке управляемой формы. В качестве примера, рассмотрим форму списка справочника "Сотрудники" конфигурации "Зарплата и Кадры Государственного учреждения" (Рисунок 2).
Рисунок 2 - Отбор по ссылке
Например, нам необходимо отфильтровать список по подразделению "Администрация". Выделяем нужное значение в колонке "Подразделение" и зажимаем сочетание клавиш alt+F. Автоматически открывается форма отбора по значению "Администрация". Остается кликнуть "Найти", либо нажать "Enter", после чего фильтр отберет строки по нужному нам значению подразделения. Данная фишка работает почти для любого типа данных, в любой форме списка.
3. Еще одна очень полезная комбинация клавиш - ctrl+Break. Сочетание помогает остановить запущенный по неосторожности поиск, либо длительное выполнение какой-либо операции. Часто приходится искать нужные области кода в конфигураторе используя инструмент "Глобальный поиск". Если мы видим, что нужный модуль уже найден и нужно остановить поиск, то в этом поможет ctrl+Break.
4. ctrl+M - необходимая комбинация при редактировании макета, например, печатной формы. Если необходимо объединить, либо разъединить ячейки макета - очень удобно использовать ctrl+M.
5. Следующая комбинация позволяет удалить сразу всю строку программного кода. Спозиционировав курсор на нужной строке, (В нашем случае - "Движение.ВидДвижения = ВидДвиженияНакопления.Приход;"), нажимаем ctrl+L(Рисунок 3) - строка очистится.
Рисунок 3 - Удаление строки
6. Очередная полезная комбинация клавиш - ctrl+H. Данный набор позволяет осуществлять поиск и замену фрагмента текста в конфигураторе. На рисунке 4 показан пример применения такого сочетания клавиш.
Рисунок 4 - Поиск и замена
В строке "Искать" указываем текст поиска, а в строке "Заменить" пишем новый текст, который хотим вставить. Опция замены позволяет заменять все сразу, либо шагать по кускам кода - вставлять замены точечно.
7. В последнем пункте главы просто перечислю клавиши, используемые при отладке кода. Первая клавиша - F12. Данная клавиша позволяет перейти к определению метода, на котором установлен курсор. В качестве примера, на рисунке 5 показан переход к определению процедуры "ВыполнитьОбработку()".
Рисунок 5 - Переход к определению метода
Устанавливаем курсор на вызове метода и нажимаем F12.
Следующие 4 комбинации помогают легко использовать средства отладки. Первая клавиша - F9 - устанавливает и удаляет точку останова на спозиционированной строке (Рисунок 6)
Рисунок 6 - Установка/Удаление точки останова
При запущенном режиме отладке удобно по шагам отлаживать строчки кода. Для удобного управления, помогают клавиши F10 и F11. F10 - шагает по строкам, не проваливаясь в метод, стоящий на пути отладки. F11 же наоборот, шагает построчно и при подходе к методу - переходит к его вызову. И последняя комбинация отладки - ctrl+F11 - помогает выйти из текущего метода, не останавливаясь пошагово в каждой строке.
В данной главе были рассмотрены основные рабочие комбинации, без которых достаточно неудобно работать с платформой 1С:Предприятие 8.3. Хочу отметить, что это лишь небольшой набор сочетаний, которые могут пригодиться в работе. Помимо разовых нажатий, удобно использовать сочетания клавиш ctrl+"->", ctrl + Shift + "->" - данные комбинации помогают выделять длинные куски кода, перемещаться в рамках модуля по длинным выражениям и вообще, служат в качестве удобного опционального инструмента.
Платформенные настройки
При написании кода, отладке, тестировании часто приходится использовать маленькие хитрости, для более быстрой и комфортной работы. В этой главе рассмотрим некоторые из них.
1. Выделение переменной/метода. В платформе 8.3 доступна опция выделения фрагмента текста, повторяющегося в модуле. Например, выделяем переменную "Движение" и переменная подсветится во всех местах текущего модуля (Рисунок 7).
Рисунок 7 - Выделение переменной
Чтобы подключить данную фичу, необходимо перейти: Сервис -> Параметры -> Модули, после чего в окне "Редактирование" указать нужный цвет для позиции "Текущий идентификатор" (В моем примере "Жёлтый" - рисунок 8)
Рисунок 8 - Установка подсветки
2. Еще одна интересная настройка - Установка панели свойств в виде Закладок. При открытии свойств любого объекта дерева конфигурации по умолчанию установлена списочная форма. Однако ее легко поправить и сгруппировать по общим признакам используя вид "Закладки". Для этого необходимо кликнуть правой клавишей мыши на панели свойств и включить признак "Закладками" (Рисунок 9). На мой взгляд, такая палитра свойств гораздо удобнее - поможет быстрее отыскать нужные настройки.
Рисунок 9 - Изменение вида палитры свойств
3. Запуск отладчика под пользователем. Данная возможность позволяет запускать приложение из конфигуратора под любым пользователем. Такая опция может пригодиться, например, при отладке прав, либо выявлении ошибок. Переходим: Сервис -> Параметры -> Запуск 1С:Предприятия, и в области "Пользователь" выбираем необходимое имя для запуска (Рисунок 10)
Рисунок 10 - Запуск приложения под пользователем
Однако, стоит помнить, что пароль при запуске приложения все равно необходимо ввести. Такой вид отладки часто используется, если авторизация пользователей осуществляется по используемой аутентификации операционной системы.
4. Еще одна фишка - просмотр движений регистра в пользовательской части из формы документа. Данная возможность позволяет перейти к записям регистра, сделанным текущим документом. В обычных формах для такой возможности используется кнопка "Перейти", но в управляемых ссылку на движения необходимо вывести. Сделать это можно из пользовательского режима. Кликаем по трем вертикальным точкам в правом углу управляемой формы. Выбираем: Окно - > Настройка панели навигации формы. И во вкладке "Перейти" выбираем нужные нам регистры (Рисунок 11)
Рисунок 11 - Переход к движениям документа
Гиперссылки на выбранные регистры отразятся в верхней части формы документа.
5. Обновление вспомогательных данных. Иногда, при настройке прав, подсистем возникают некие платформенные "глюки". Либо не работают вновь добавленные роли, либо выходит ошибка при работе с определенной подсистемой, с настройкой вариантов отчетов. В ряде случае может помочь обновление вспомогательных данных. Если в ближайшее время обновление базы не планируется, то можно запустить приложение с ключом "/С ЗапуститьОбновлениеИнформационнойБазы", после чего вспомогательные данные успешно обновятся. Прописать данное выражение можно в: Сервис -> Параметры -> Запуск 1С:Предприятия -> поле "Параметр запуска". (Рисунок 12)
Рисунок 12 - Обновление вспомогательных данных
После проделанной операции ключ лучше очистить, иначе при каждом перезапуске системы из конфигуратора будет происходить обновление.
6. Форматирование текста. Часто, при написании программного кода необходимо придерживаться стандартов разработки. Соблюдение интервалов, отступов и общих схем разработки является хорошим тоном любого разработчика. Чтобы выровнять текст по нужному формату в программном модуле существует такой инструмент. Для его вывода необходимо кликнуть правой кнопкой мыши по нижней области конфигуратора и установить признак "Текст" (Рисунок 13).
Рисунок 13 - Вывод иконки выравнивания текста
При написании кода выделяем необходимую область и нажимаем нижнюю левую кнопку "Форматировать", после чего, сформируются нужные отступы выделенного фрагмента текста. Кнопками со стрелочками можно двигать выделенные области кода влево/вправо, аналогично клавише "Tab".
7. Стоит также отметить инструмент проставления закладок (Рисунок 14)
Рисунок 14 - Установить/Удалить закладку
Выводится в область конфигуратора механизм по той же команде, что и выравнивание текста: Правой клавишей в нижней области конфигуратора -> Текст. Устанавливая закладки по соответствующей кнопке, удобно затем перемещаться по ним и быстро находить нужные строки кода. Иногда для "прыжков" по закладкам проще использовать клавиши F2 и SHIFT+F2.
8. Точка останова с условием. Бывает так, что при отладке кода необходимо использовать точку останова с определенным условием. Например, отлаживаем долгий цикл, в котором нужно остановиться только при конкретном условии: при нужном значении переменной, при определенном шаге итерации или любом другом условии. На помощь приходит Точка останова с условием. Установить ее можно следующим образом: Отладка -> Точка останова с условием. Далее прописываем нужное нам условие. В результате, в выбранной строке установится синяя точка с пиктограммой вопросительного знака (Рисунок 15):
Рисунок 15 - Точка останова с условием
9. Следующая фишка является скорее админской, но, думаю, начинающим программистам 1С будет полезно знать о ней. Речь пойдет о консоли кластера серверов. Многим известно, как отключать пользователей в клиент-серверном варианте - заходим в консоль, выбираем нашу базу, выделяем все лишние сеансы и нажимаем кнопку "Удалить". Однако, если кликнуть правой клавишей по базе и перейти в свойства, то можно указать расписание, когда и с каким сообщением закроется база (Рисунок 16).
Рисунок 16 - Свойства базы в консоли администрирования
Например, если нам срочно необходимо обновить конфигурацию базы данных и нужно предупредить всех пользователей о скором обрыве сеанса, можно воспользоваться свойствами консоли серверов 1С. Переходим в свойства нужной базы. Взводим флаги "Блокировка начала сеансов включена" и "Блокировка регламентных заданий включена" - тем самым мы запретим запуск новых сеансов и нежданных регламентных заданий. Выставляем время запрета в полях "Начало" и "Конец". Обращаю внимание, что дата и время должны указываться в строго определенном формате (как на шаблоне), иначе "не взлетит". Далее, прописываем сообщение - оно выйдет у пользователя, тем самым предупредит о необходимом выходе из программы. Также, можем прописать "Код разрешения". Данный параметр необходим для запуска наших собственных сеансов. Например, мы обновили конфигурацию и хотим запустить пользовательский режим, но взведены флаги блокировки новых сеансов. Код разрешения исключит нашу учетку из списка заблокированных. После указания кода, его необходимо прописать и в настройках базы. Делается это следующим образом. Запускам ярлык 1С. Выбираем нашу базу и кликаем справа кнопку "Изменить". Жмем "Далее" и в поле "Дополнительные параметры запуска" указываем ключ разрешения (Рисунок 17)
Рисунок 17 - Дополнительные параметры запуска
Обращаю внимание, что ключи должны строго совпадать, иначе корректный запуск при блокировках не произойдет. Ну и, конечно же, после успешного обновления конфигурации снимаем взведенные флаги - запускаем пользователей.
Заключение
В данной заметке были продемонстрированы некоторые интересные фишки платформы 1С, о которых многие начинающие разработчики могут не знать. Конечно, существуют еще многие другие настройки и опции, которые не были показаны в статье, однако, я попытался продемонстрировать те инструменты, которые чаще всего использую в повседневной работе.