Как открыть консоль кода в 1с

Обновлено: 07.07.2024

Встречается такой вопрос «зачем консоль кода, если есть конфигуратор». Цель данной статьи - пояснить этот момент и провести обзор подобных инструментов.

Использование

Суть консоли кода - это исполнение кода встроенного языка в режиме предприятия, использование зависит от функционала инструмента, обычно это:

  • Какая-то простая разовая обработка (например, запуск фонового задания для отладки)
  • Проверка, как работает тот иной код
  • Замер/сравнение скорости выполнения

Еще есть обработка результата в консолях запросов, правила обмена в конвертации и подобное.

Естественно, чем более функциональна консоль кода, тем шире ее использование и комфортнее работа. Контекстная подсказка, подсветка позволяют делать более сложный код и совершать меньше ошибок.

Подавляющее большинство консолей работает через метод Выполнить() в котором нет возможности использовать более сложный код в виде процедур\функций. Полезна функция сохранения кода для дальнейшего использования.

Рассмотрим несколько примеров использования:

Пример №1, что быстрее СтрРазделить() или РазложитьСтрокуВМассивПодстрок из БСП 2.4.6.241

Результат: 0,15 с, БСП за 3,5 с (более чем в 20 раз)

Пример №2, объект в XML виде

Пример №3, проверка как работает XMLСтрока для перечисления

Обзор консолей

Инструменты разработчика автор Сергей Старых (tormozit)


Очень функциональный инструмент: удобно писать "много" кода, удобно почти как в конфигураторе, есть возможность отлаживать код во внешней обработке.

Удобна возможность исследования результата


  • Обычные формы, сложности с запуском в новых конфигурациях (установка компонент)

Достаточно простая, интересна тем что выводит на новый уровень работу с кодом в режиме 1С Предприятие в управляемой форме


Пример продвинутого механизма кода работает быстро и хорошо как современных IDE, можно брать и добавлять себе улучшать ее в общем бомба!

  • Подсветка синтаксиса языка 1С
  • Автокоммит глобальных функций и др.
  • Подсказка параметров конструкторов и методов
  • Сниппеты вставка готовых блоков
  • Светлая/темная темы

Простая, интересна только тем, что реализована работа с функциями и процедурами


Транслятор запросов 1С в SQL автор Юрий Пермитин

Можно посмотреть планы запросов для кода (в ИР тоже такое есть), но здесь проще и описано в статье.

Например, можно посмотреть как на уровне СУБД работает НайтиПоНаименованию или пересчет итогов

Другие, которые хотелось бы упомянуть, но детально не рассматривались:

Универсальная обработка - Консоль кода 1С автор: Александр Чепур ( Обычные формы, не обновлялась с 10.05.12 )

PowerTools - коммерческий инструмент программиста для администрирования конфигураций, который включает обработку результата

Рассматривались только те инструменты, где есть консоль кода, инструмент популярен, чем-то интересен.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Какую консоль кода используете?

1. Инструменты разработчика, автор Сергей Старых (52.21%, 71 голосов) 2. Консоль Программиста 8.3. Управляемые формы, тонкий/толстый клиент, автор Алексей Безносиков (2.21%, 3 голосов) 3. Консоль кода для УФ, автор Евгения Карук (1.47%, 2 голосов) 5. Не использую, очень редко (конфигуратора достаточно) (31.62%, 43 голосов) Странно, что нет Снегопата. На старте был топовый инструмент. Пусть он и не консольный вариант, но функционал тот же, что и у вышеперечисленных. Хоть он и отстал от актуальных релизов (пропал на несколько лет). Но вроде возродился (1) Снегопат работает только в Конфигурате, а указанные консоли в режиме Предприятия. Дополню.
Отличительная особенность консоли кода в PowerTools в том, что код можно выполнить в многопоточном режиме, конечно при наличии в конфигурации БСП и клиент-серверном режиме работы. Пример №1, что быстрее СтрРазделить() или РазложитьСтрокуВМассивПодстрок из БСП


Прочитайте описание из БСП, пожалуйста)

(8) мытное описание. вызванная БСПшная функция сама должна проанализировать и вызвать СтрРазделить У ИР же есть вариант в виде расширения, оно и в УФ работает - разве там нет консоли кода? (11) Вариант ИР Расширение работает в управляемом приложении (в УП) в/на обычных формах. В/на управляемых формах ИР нет. Если не хочется себе в систему устанавливать чужие непроверенные DLL то
Администрирование->Обслуживание->Групповое изменение реквизитов->Выполнить произвольный алгоритм (14) Там есть внешние компоненты сделанные по технологии Native, поставляемые без исходного кода. Они просто молча выполнят свои функции и даже не сообщат пользователю об этом. (15) А потом начнутся грабли) Или, они начнутся прямо в процессе, или даже при запуске. Нафиг-нафиг все эти мутные компоненты, тем более что - в одном месте есть, в другом нет, в третьем админ на сервер ставить не даст. Есть стандартный функционал платформы, и хватит. Спокойней будет) (23) Я под "там" имел ввиду "Администрирование->Обслуживание->Групповое изменение реквизитов->Выполнить произвольный алгоритм ". Этим ты тоже не пользуешься? (25) Этим иногда да, а бывает, и свои обработки делаю или своей универсалкой под УФ пользуюсь, по ситуации. Я про всякие dll говорил. (14) >Групповое изменение реквизитов->Выполнить произвольный алгоритм
Это лишь очень частный случай задач, решаемых консолью кода. Похоже ты невнимательно читал статью. (20) Я и не утверждал что штатная консоль полностью заменяет все перечисленные в статье консоли кода и даже описанный в ней транслятор запросов. С чего вы это взяли? (26) Комментарий был для читателей статьи которым рассказали про всевозможные консоли кода но почему-то автор не упомянул что есть штатная консоль не требующая устанавливать в системе чужие обработки код которых еще придется проверять, да еще и содержащие плагины которые имеют закрытый код который простому 1с-нику вообще не проверить.
Для достаточно большого количества задач хватит простой штатной консоли кода, но далеко не все про нее знают.

(28) Таким образом ты признаешь, что считаешь "Групповое изменение реквизитов->Выполнить произвольный алгоритм " консолью кода? Если да, то я снова не согласен с таким утверждением, как и написал в (20). Считаю, что консоль кода должна
1. независимо открываться
2. позволять выполнять свой код ровно один раз без извращений
3. сохранять/загружать код

(0) Предлагаю автору статьи обозначить эти границы рассматриваемого класса инструментов.

(29) "позволять выполнять свой код ровно один раз без извращений"
:) (30) Не пользуетесь консолями кода, пожалуйста. 30% аудитории поступают также (29) Обозначено, тема консоли кода
КД2, Групповая обработка, Обработка результата в консолях и другие механизмы где кодом задается поведение, упомянуты не более
Так дойдем что "Открыл консоль запроса создал запрос с параметром типа выражение (код) и там прописал" (15) Об этом и речь, наличие вредоносного кода проверить нельзя. Молча выполнит свои функции и даже не сообщит пользователю об этом.
Народная мудрость: "Бойтесь Данайцев дары приносящих" :) (16) Я писал про твое "Администрирование->Обслуживание->Групповое изменение реквизитов->Выполнить произвольный алгоритм". Как думаешь, сколько там внешних компонент? Если 0, то сообщи название конфигурации. (17) То есть вы не понимаете разницы между компонентами которые 1с штатно включает в систему и теми которые можно скачать на сайтах от авторов которые являются свободными художниками?
Слово на букву Р. :) (18) Компания Microsoft и цифровая подпись - это свободный художник? ВК с исходным кодом от свободного художника опаснее чем ВК без исходного кода и без цифровой подписи от наемного художника из довольно большой компании 1С?

Еще раз, слово на букву Р - Репутация.

Если мы покупаем продукт 1с то мы до определенной степени доверяем этой фирме и ожидаем того что она дорожит своей репутацией и не будет намеренно подсовывать нам вредоносный код.

Кроме того раз мы ведем речь о доработках 1с значит продукт 1с мы уже купили, установили и речь идет не об альтернативе а о дополнении системы новыми дырами в безопасности.

То есть при установке 1с допустим 30 скрытых дыр в безопасности, а после установки дополнительных компонент уже 80, причем эти дополнительные 50 получены от неизвестных нам источников с неизвестной репутацией, которые подсунули нам свой код бесплатно с неизвестными мотивами, поэтому сравнение с компонентами 1с где-то далеко за гранью логики и здравого смысла.

Насколько я в курсе технология Native не требует обязательных цифровых подписей Майкрософта, можно самому разработать любые компоненты и подключить к 1с, я ведь не ошибаюсь?

По поводу того есть ли на конкретных компонентах используемых в разработках из статьи какие-то подписи, тем более подписи Майкрософт, вопрос обсуждаемый, это позволит в некоторой степени повысить доверие к этим компонентам, но опять же не даст 100% гарантии их чистоты, насколько я понял цена вопроса фиктивное юридическое лицо или ИП + 99$.

Вы что пытаетесь доказать что можно ставить любые компоненты из сети и ничего страшного не случится, типа раз стоит 1с хуже уже не будет?

Насколько я в курсе технология Native не требует обязательных цифровых подписей Майкрософта, можно самому разработать любые компоненты и подключить к 1с, я ведь не ошибаюсь?
Насколько я понимаю, Сергей тут говорит о внешних компонентах, выполненных по технологии COM, которые он использует в своей разработке. Эти компоненты сделаны Microsoft и имеют подписи. На Инфостарте спор об использовании внешних компонент идет с незапамятных времен, всегда есть и сторонники, и противники. Все эти сторонние разработки вроде как и не нужны, но только ровно до того момента, как вы не сталкиваетесь с какой-нибудь нестандартной задачей, а такие задачи сплошь и рядом. Попробуйте на 8.1/8.2 поработать с регулярными выражениями или получить MD5/SHA256, ну никак тут без сторонних компонент. Если бы пару-тройку лет назад вам бы понадобилось печатать DataMatrix или Aztec, вы бы тоже уперлись во внешние компоненты, которых нет у 1С. Сейчас ситуация меняется, но всё равно в некоторых задачах без этого не обойтись. А буква Р, как вы выразились, тоже частенько подводит. За примером далеко ходить не надо. Тот же Атол, компоненты которого использует 1С не раз ронял эту самую программу. Я довольно часто работаю с разными компонентами, иногда сам пишу, но не разу не слышал о каких-то прям дырах. Да ошибки встречаются у всех, от этого не застрахована ни 1С, ни Microsoft, ни сторонний Иван Иванович, но, чтобы прямо дыры. Поделитесь такими случаями, если можно.

(33) Ну самый наглядный пример: Фирма 1с внедрила специальный механизм который предотвращает исправление выгруженных файлов при обмене с банк-клиентом, причиной стали вирусы которые отправляли денежки на левые реквизиты.

То есть идет целенаправленная атака на пользователей 1с, а какой самый лучший способ подкинуть вирусы именно пользователям 1с? Естественно компоненты в обработках на публичных сайтах.

Насчет надежности цифровых подписей я лучше буду слушать специалистов соответствующего направления:
Почему нельзя безусловно доверять файлам, подписанным цифровыми сертификатами

Да ошибки встречаются у всех, от этого не застрахована ни 1С, ни Microsoft, ни сторонний Иван Иванович, но, чтобы прямо дыры.
Вы не слышали что такое троянский конь и какие дыры в безопасности можно при помощи него добавить? Вы не слышали что такое троянский конь и какие дыры в безопасности можно при помощи него добавить?
Нет я не слышал об этом применительно к 1С, поэтому и попросил поделиться конкретным случаем/примером.

(35) Этого примера достаточно?

Нет я не слышал об этом применительно к 1С, поэтому и попросил поделиться конкретным случаем/примером.
Там обработка в ресурсах которой так же как и вы храните компоненту, хранится троянец.
Хранится он в виде компоненты или другого вида бинарника считаю в принципе неважным.
Вы же не утверждаете что в компоненту невозможно добавить вирус? (38) вне мира 1С все строится на множестве компонент и ничего. Доверяешь конечному поставщику.. все. (39) вне мира 1с за исполняемый файл неизвестного автора распространяемый бесплатно, скачанный из интернета и запущенный в корпоративной сети системные администраторы из вас барбекю сделают и судья их оправдает. :) (42) Почему не известного автора, ИР известны, Сергей Старых тоже

(43) А вот об этом я и говорю, репутацию проверять нужно.
Но при этом учитывать что и у мошенников тоже бывают долгоиграющие проекты.

А насчет доверия, есть специфическая классификация пользователей:
ламер, юзер, программист, хакер.

Вариант "Доверяешь конечному поставщику.. все." относится к конкретной категории данной классификации :)

Вы не подумайте, что я прямо топлю за то, чтобы везде где можно и где нельзя использовать сторонние внешние компоненты

Ну тогда консенсус :) Я как раз об этом и говорил.

Считаю что первым делом скачивая обработки из открытых источников нужно проверять их код на наличие закладок, хотя бы просмотреть по диагонали. Наличие вложенных файлов ресурсов должно сильно насторожить , нужно проверить нет ли среди них исполняемых файлов, при наличии таких серьезно задуматься насколько все это нужно.
Если есть исполняемые файлы проверить источники, их репутацию, если возможно проверить контрольные суммы файлов и подписи. А лучше привлечь системных админов чтобы они обратили особое внимание и провели свои проверки.

А вообще, после появления Выполнить/Вычислить всё это стало неинтересно делать. Особенно под УФ, где "добрые" создатели платформы так и не озаботились воссоздать функционал расширения кода и запроса в текстовом документе. И все извраты на эту тему - лишь с применением внешних костылей.

Интересны ещё были попытки расширяться засчёт js-скриптов в хтмл-окнах.

Я консоль кода ещё в 1999-м на 7.7 штатными средствами сделал (хотя, окно редактирования, конечно, тоже было плоским текстом).

Пользуюсь Консолью Кода Сергея Старых. Отличная обработка. Единственное что не хватает.
То как например уже реализовано с запросом, отложенная отладка. Отлаживаешь запрос, запрос сохраняется со свеми заполненными параметрами и временными таблицами. Было бы супер если выделил код, обработка запомнила текст, и заполнила все текущие переменные.

Консоль кода для 1С 8.3 (Управляемые и обычные формы)

Для работы внутри 1С требуется версия платформы не ниже 8.3.14.1565


  • Подсветка синтаксиса языка 1С
  • Подсветка языка запросов
  • Автокомплит для глобальных перечислений и функций
  • Автокомплит для метаданных (Справочники, Документы и т.п.)
  • Автокомплит для объектов метаданных (СправочникСсылка, ДокументОбъект и т.п.)
  • Подсказка параметров конструкторов и методов
  • Подсказка для типов
  • Вставка готовых блоков кода (сниппеты)
  • Вызов конструктора запроса и конструктора форматной строки
  • Загрузка пользовательских функций и сниппетов
  • Выделение строки, при выполнении которой произошла ошибка
  • Сворачивание циклов, условий и текстов запросов
  • Всплывающие подсказки для глобальных функций, перечислений и классов
  • Подсказки через точку для реквизитов типа справочники/документы
  • Подсказки через точку для объектов типа ТаблицаЗначений/Массив/РезультатЗапроса/ДвоичныеДанные и др., в том числе для объектов, полученных через методы других объектов.
  • Подсказки для источников и полей в режиме запроса
  1. Для запуска в браузере достаточно открыть index.html из каталога src, либо воспользоваться ссылкой
  2. Для запуска в 1С можно использовать обработку console.epf, выкладываемую в релизах или сделать свою.
  3. Редактор используется на сайте Paste1C.

Функции для взаимодействия с 1С:Предприятием

Работа с текстом (кодом)

Функция Описание
setText Устанавливает переданный текст в текущую или определенную позицию
updateText Полностью заменяет весь текст редактора, игнорируя при этом режим Только просмотр
setContent Устанавливает текст редактора. Игнорирует режим Только просмотр и не генерирует событие EVENT_CONTENT_CHANGED
getText Возвращает весь текст из окна редактора
eraseText Удаляет весь текст редактора
selectedText Получает или заменяет выделенный текст
getSelection Возвращает selection, аналог GetTextSelectionBounds
setSelectionByLength Устанавливает выделение, аналог первой сигнатуры SetTextSelectionBounds
setSelection Устанавливает выделение, аналог второй сигнатуры SetTextSelectionBounds
getLineCount Возвращает количество строк
getLineContent Возвращает содержимое строки по её номеру, аналог GetLine
setLineContent Устанавливает содержимое строки по её номеру, аналог ReplaceLine
getCurrentLineContent Возвращает содержимое текущей строки
getCurrentLine Возвращает номер текущей строки
getCurrentColumn Возвращает номер текущей колонки
getQuery Определяет текст запроса в текущей позиции и возвращает его вместе с областью текста
getFormatString Определяет текст форматной строки в текущей позиции
findText Возвращает номер строки, в которой находится заданный текст
addComment Добавляет комментарий к текущему блоку кода
removeComment Удаляет комментарий у текущего блока
addWordWrap Добавляет перенос строки к текущему блоку
removeWordWrap Удаляет перенос строки у текущего блока
insertLine Вставляет текст в строку с указанным номером
addLine Добавляет новую строку с указанным текстом
getPositionOffset Возвращает координаты текущей позиции курсора
jumpToBracket Переход к парной скобке CTRL+[]
selectToBracket Выделяет скобки и текст между ними SHIFT+ALT+B
formatDocument Форматирование выделенного фрагмента кода или всего кода ALT+SHIFT+F
insertSnippet Вставляет переданный сниппет в текущую позицию редактора
revealDefinition Переход к определению переменной, фунции или поля запроса F12
peekDefinition Быстрый просмотр определения переменной, фунции или поля запроса CTRL+F12

Управление режимом работы / настройками

Функция Описание
init Инициализация редактора с передачей версии платформы
setLanguageMode Переключение режимов редактора (встроенный язык, язык запросов и т.п.))
setTheme Установка темы редактора bsl-white , bsl-white-query , bsl-dark , bsl-dark-query
setReadOnly Устанавливает/снимает режим Только просмотр
getReadOnly Возвращает значение режима Только просмотр
switchLang Переключает язык подсказок с английского на русский и обратно
enableQuickSuggestions Включает/выключает режим быстрых подсказок
minimap Включает/выключает отображение карты кода
enableModificationEvent* Включает/выключает генерацию события, возникающего при изменении содержимого редактора (устарела)
enableSuggestActivationEvent* Включает/выключает генерацию события, возникающего активации пункта в списке подсказок (устарела)
enableBeforeShowSuggestEvent* Включает/выключает генерацию события, возникающего перед появлением списка подсказок (устарела)
enableSelectSuggestEvent* Включает/выключает генерацию события, возникающего при выборе пункта из списка подсказок (устарела)
enableBeforeHoverEvent* Включает/выключает генерацию события, возникающего перед появлением всплывающей подсказки для слова (устарела)
enableBeforeSignatureEvent* Включает/выключает генерацию события, возникающего перед появлением подсказки по вызову процедуры/метода (устарела)
switchQueryMode* Переключение между режимом запроса и режимом редактирования кода (устарела)
switchDCSMode* Переключение в режим СКД и обратно (устарела)
switchXMLMode* Переключение в режим просмотра XML с подсветкой и обратно (устарела)
compare Включает/выключает режим сравнения текстов
nextDiff Переход с следующему изменению в режиме сравнения
previousDiff Переход с предыдущему изменению в режиме сравнения
getVarsNames Возвращает имена всех объявленных в коде переменных
disableContextMenu Отключает показ контекстного меню
showLineNumbers Включает отображение номеров строк в редакторе
hideLineNumbers Отключает отображение номеров строк в редакторе
hideScrollX Скрывает стандартную горизонтальную полосу прокрутки
hideScrollY Скрывает стандартную вертикальную полосу прокрутки
openSearchWidget Открывает окно поиска
closeSearchWidget Закрывает окно поиска
nextMatch Переход к следующему совпадению в поиске
previousMatch Переход к предыдущему совпадению в поиске
setFontSize Установка размера шрифта
setFontFamily Установка семейства шрифтов
setFontWeight Установка насыщенности (толщины) шрифта
setLineHeight Установка высоты строки
showStatusBar Включает отображение строки состояния в нижней части редактора
hideStatusBar Отключает отображение строки состояния
renderWhitespace Включает/отключает отображение пробелов и табуляций
hasTextFocus Возвращает признак активности фокуса
setOption Установка опциональных настроек редактора
getOption Получение опциональных настроек редактора
disableKeyBinding Отключает любое стандартное сочетание клавиш редактора
enableKeyBinding Включает обратно сочетание
saveViewState Возвращает JSON-строку с текущими настройками (положение курсора и прокрутки, а также свернутые блоки)
restoreViewState Восстанавливает настройки. В качестве аргумента принимает JSON-строку, полученну ранее через saveViewState
setOriginalText Устанавливает или сбрасывает оригинальный текст, на основании которого строится подсветка изменений
getOriginalText Возвращает текст, установленный ранее функцией setOriginalText
getCurrentLanguageId Возвращает идентификатор текущего языка ( bsl , bsl_query , dcs_query , xml )
isQueryMode Возвращает true , если редактор находится в режиме редактирования запроса и false в любом другом режиме
isDCSMode Возвращает true , если редактор находится в режиме СКД и false в любом другом случае
Функция Описание
updateMetadata Обновляет через JSON структуру метаданных (Справочники/Документы/пр.)
clearMetadata Очищает структуру метаданных
updateSnippets Обновляет пользовательские сниппеты
updateCustomFunctions Обновляет пользовательские функции
parseCommonModule Загружает структуру общего модуля
parseMetadataModule Загружает структуру модуля менеджера или модуля объекта
setCustomHovers Обновляет пользовательские подсказки, показываемые при наведении
setCustomSignatures Обновляет пользовательские подсказки по вызову процедуры/метода
setCustomCodeLenses Загружает подсказки для Code Lens
addContextMenuItem Регистрирует пользовательский пункт контекстного меню и связанное с ним событие
markError Индикация ошибки в указанной строке
triggerSuggestions Принудительный вызов подсказок
triggerHovers Принудительный вызов всплывающей подсказки для текущего слов
triggerSigHelp Принудительный вызов подсказки по вызову процедуры/метода
showCustomSuggestions Показ пользовательских подсказок
showPreviousCustomSuggestions Вывод списка пользовательских подсказок, ранее показанных через showCustomSuggestions
hideSuggestionsList Скрывает текущий список подсказок
hideHoverList Скрывает активную всплывающую подсказку для слова
hideSignatureList Скрывает активную всплывающую подсказку по вызову процедуры/метода
addBookmark Создание закладки в строке с указанным номером
removeBookmark Удаление закладки из строки с указанным номером
goNextBookmark Переход к следующей закладке
goPreviousBookmark Переход к предыдущей закладке
getBookmarks Возвращает массив с номерами строк, в которых установлены закладки
removeAllBookmarks Удаляет все закладки
setMarkers Задает маркеры выделения
getMarkers Возвращает список установленных маркеров
goNextMarker Переход к следующему маркеру
goPreviousMarker Переход к предыдущему маркеру
setActiveSuggestLabel Устанавливает заголовок активного пункта списка подсказок
setActiveSuggestDetail Устанавливает подробное описание активного пункта списка подсказок
revealLineInCenter Переход к строке по её номеру и позиционирование по центру экрана
goToFuncDefinition Переход к определению процедуры/функции по имени

События, генерируемые редактором для 1С:Предприятия

Событие Описание
EVENT_QUERY_CONSTRUCT При выборе пункта меню "Конструктор запросов". Возвращает текст и позицию запроса
EVENT_FORMAT_CONSTRUCT При выборе пункта меню "Конструктор форматной строки". Возвращает текст и позицию фор.строки
EVENT_CONTENT_CHANGED ] При любом изменении содержимого редактора (подробнее)
EVENT_GET_METADATA Генерируется при отсутствии метаданных. В параметрах передается имя запрашиваемых метаданных (подробнее)
EVENT_XXX При выборе пользовательского пункта меню. addContextMenuItem('Мой пункт', 'EVENT_MY')
EVENT_ON_ACTIVATE_SUGGEST_ROW При активации пункта в текущем списке подсказок (подробнее)
EVENT_ON_DETAIL_SUGGEST_ROW При активации подробного описания пункта в текущем списке подсказок (подробнее)
EVENT_ON_SELECT_SUGGEST_ROW При выборе пункта из списка подсказок (подробнее)
EVENT_BEFORE_SHOW_SUGGEST Перед появлением списка подсказок (подробнее)
EVENT_BEFORE_HOVER Перед появлением всплывающей подсказки для слова (подробнее)
EVENT_BEFORE_SIGNATURE Перед появлением всплывающей подсказки по вызову процедуры/метода (подробнее)
EVENT_ON_LINK_CLICK При клике по гиперссылке
EVENT_KEY_BINDING_ХХХ При нажатии отключенного сочетания клавиш (подробнее)
EVENT_GET_DEFINITION При переходе к определению (подробнее)

Перед началом работы с редактором из 1С Предпрития желательно вызвать функцию инициализации и передать в нее текущую версию платформы. Пример:

Переключение режимов работы

По умолчанию редактор находится в режиме редактирования кода (bsl). Для переключения режимов работы редактора служит функция setLanguageMode Пример:

Все горячие клавиши описаны тут

  • По умолчанию редактор не подстраивается под размеры окна. Это не ошибка, решение описано тут и тут

Продукты, использующие консоль:

  • 8.3.15.1830
  • 8.3.16.1148
  • 8.3.17.1386
  • 8.3.18.891
  • 8.3.20.1549
  • На платформах, выпущенных примерно до ноября 2020 года могут не работать горячие клавиши CTRL+SPACE, CTRL+C, CTRL+V и CTRL+Z и т.п.
  • В веб-клиенте недоступно любое взаимодействие редактора и 1С. Можно попробовать только набор кода. Иногда для этого в браузере надо предварительно открыть данную ссылку
  • В linux пока возможны проблемы с некоторым функционалом. Для сборки под linux необходимо использовать ветку webpack
  • Из-за особенностей реализации подсказка через точку для реквизитов ссылочного типа работает только тогда, когда подсказываемый реквизит выбран через Enter

Выражаю благодарность команде 1c-syntax и их проекту для VSCode за подробное описание внутренних конструкций языка в JSON, а также за коллекцию сниппетов.

Конфигурации под управляемое приложение часто вполне работоспособны и в режиме обычного приложения. У таких конфигураций установлен основной режим запуска "Управляемое приложение". Однако вы можете запустить для них обычное приложение любым их вариантов

  • указав параметр командной строки /RunModeOrdinaryApplication
  • установив пользователю базы свойство "Режим запуска" = "Обычное приложение"
  • из конфигуратора в "Сервис/Параметры" указать режим запуска "Управляемое приложение и обычное приложение" и запускать команду "Начало отладки"/"Толстый клиент (обычное приложение)"
  • из управляемого приложения выполнив команду подсистемы "Запустить обычное приложение" или формы базовой внешней обработки портативного варианта инструментов

Как разобраться в большом количестве кнопок


В каждой немаленькой командной панели подсистемы, включая главную панель инструментов, первой кнопкой идет кнопка "Структура командной панели" (продвинутый аналог "Все действия" в управляемой форме). Она позволяет искать по описанию кнопок



Копирование и вставка ссылок

Во всех полях ввода и табличных полях подсистемы доступны команды Копирования (SHIFT+ALT+C) и Вставки (SHIFT+ALT+V) ссылки. Используется собственный формат буфера обмена Windows и поэтому копировать можно в приложении одной базы, а вставку выполнить в приложении другой базы с одноименным типом объектов. Глобальное меню управляемых форм

В непортативных вариантах во всех управляемых формах (не ограничиваясь подсистемой) сочетание клавиш CTRL+ALT+E вызывает глобальное контекстное меню подсистемы. Его состав определяется текущими ячейкой/полем/строкой/таблицей/табличным документом/формой. Подробно познакомиться с ним можно в статье.

Так например выглядит состав этого меню при вызове в таблице динамического списка:

Как выглядит консоль запросов

Рассмотрим этот инструмент подробнее.

Авторство обработок не моё, я лишь объединил 2 наиболее удачные, на мой взгляд, консоли.

Описание консоли запросов 1С

Если Вас интересует, как пишутся запросы в системе 1С, рекомендую ознакомиться со статьей Описание языка запросов 1С и Описание конструктора запросов 1С.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Начнем рассмотрение консоли запросов с описания главной панели обработки:

верхняя панель

В шапке консоли запросов можно увидеть время выполнения последнего запроса с точностью до миллисекунды, это позволяет сравнивать разные конструкции по производительности.

Первая группа кнопок в командной панели отвечает за сохранение текущих запросов во внешнем файле. Это очень удобно, Вы всегда сможете вернуться к написанию сложного запроса. Или же, например, хранить список типичных примеров тех или иных конструкций.

Далее идут кнопки, отвечающие за инициализацию запроса:

действия

параметры запроса 1С

Позволяют установить текущие параметры для запроса.

В окне параметров запроса интересно следующее:

список значений

Также в верхней панели очень есть кнопка вызова настроек консоли запросов:

настройки консоли запросов

Где можно указать параметры автосохранения запросов и параметры выполнения запроса.

Конструктор запроса 1С 8.3 вызывается из контекстного меню (правая кнопка мыши) при нажатии на поле ввода:

контекстное меню консоли запросов

В нижнем поле консоли запросов отображается поле результата запроса, ради чего и создана эта обработка:

поле результатат

Также консоль запросов кроме списка умеет отображать данные в виде дерева для запросов, содержащих итоги.

Другие статьи по 1С:

Читайте также: