Консоль кода для управляемых форм

14.10.22

Разработка - Инструментарий разработчика

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

Скачать файлы

Наименование Файл Версия Размер
console.epf
.epf 1,41Mb
715
.epf 20221014 1,41Mb 715 Скачать

Очередная попытка заменить родной конфигуратор, EDT, снегопат и консоль кода из инструментов разработчика. Шутка, конечно!
Попалось мне на глаза недавно вот это видео и что-то мне так понравилось, что захотелось сделать что-то подобное, но для встроенного языка.
В итоге получилось плохо, но работает! :-)

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

Основные возможности:

1. Подсветка синтаксиса языка 1С

Подсветка синтаксиса

2. Автокомплит для глобальных перечислений и функций, метаданных и объектов метаданных

Автокомплит

И еще много другое (осторожно, картинки):
 

Нужна ли вообще консоль кода в управляемом приложении? Тут пусть каждый решает для себя. Кстати, есть статья на эту тему.

Благодарности:

Выражаю благодарность команде 1c-syntax и их проекту для VSCode за подробное описание внутренних конструкций языка в JSON. Без этого проект вряд ли бы ушел дальше простой подсветки синтаксиса. Еще хочу поблагодарить Александра Кунташова за ссылочку на видео в его Telegram-канале и саму идею, а также проект vanessa-automation за само видео.

Уверен, что всё можно реализовать гораздо лучше. Критика и предложения горячо приветствуются!

Тестировалось в следующих условиях:

ОС Windows 10 x64, релизы платформы 8.3.15.1830, 8.3.16.1148, 8.3.17.1386, 8.3.18.891

Исходники:

Исходники можно взять тут https://github.com/salexdv/bsl_console

Известные проблемы:
  • На платформах до 8.3.16 могут не работать горячие клавиши CTRL+C, CTRL+V и CTRL+Z и т.п.
  • На платформах до 8.3.18 команды копировать/вставить работают только в пределах окна редактора
  • В веб-клиенте недоступно любое взаимодействие редактора и 1С. Можно попробовать только набор кода. Иногда для этого в браузере надо предварительно открыть данную ссылку
  • Для работы в linux требуется отдельная сборка, кроме того некоторый функционал может пока не работать.
  • Из-за особенностей реализации подсказка через точку для реквизитов ссылочного типа работает только тогда, когда подсказываемый реквизит выбран через Enter
  • Исходники редактора сохраняются в каталоге временных файлов пользователя. На некоторых версиях платформы консоль может выдавать ошибку Метод объекта не обнаружен (init), если в имени пользователя операционной системы используется кириллица. Решением будет изменить в коде каталог хранения исходников.
История изменений:
 

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

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122118    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7288    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3524    11    1    

34

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33278    80    157    

174

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177738    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99345    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18108    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28107    3    10    

15
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
91. Evg-Lylyk 4559 23.07.20 12:45 Сейчас в теме
(0) Спасибо что продолжаете развитие
Еще бы неплохо функции
Форматировать
Отступ +
Отступ -
Добавить/убрать комментарии
Добавить/убрать перенос строки

Подсказка после Метаданные. не работает (это не критично) наверное еще много подобного
Смущает долгая инициализация, когда будет ERP сколько она будет идти
Прикрепленные файлы:
99. salexdv 2327 23.07.20 14:06 Сейчас в теме
(91) Насчет функций форматирования подумаю. Подсказки по метаданным, как и по многим другим объектам действительно пока нет. Тут нужно просто сесть и дописать все это в уже существующее описание языка в формате JSON. Как только буду чуть свободнее, обязательно сделаю.
100. Evg-Lylyk 4559 23.07.20 14:08 Сейчас в теме
(99) Еще момент, а если разные версии платформы например функция СтрНайти она появилась в платформе 8.3.5.
Сейчас заранее предопределенно?
103. salexdv 2327 23.07.20 14:46 Сейчас в теме
(100) Да, заранее. Все описания внутреннего языка лежат тут
92. Evg-Lylyk 4559 23.07.20 12:46 Сейчас в теме
Иногда нужно чтобы текст был только для просмотра, например когда генерируется текст встроенного языка для копирования
Как такое реализовать?
96. salexdv 2327 23.07.20 13:52 Сейчас в теме
(92) Чуть позже добавлю пример
125. salexdv 2327 24.07.20 23:30 Сейчас в теме
(92) Добавил в новом релизе возможность устанавливать readonly
93. Evg-Lylyk 4559 23.07.20 12:50 Сейчас в теме
В консолях запросов контекстуную подсказку было бы удобно использовать для написания алгоритмов обработки и там обычно есть входные переменные, хотелось бы иметь возможность задать тип.
Например:
Результат - ТаблицаЗначений с колонками Номенклатура, Констрагент
Строка - Структура("Номенклатура, Контрагента")
Чтобы улучшить это https://infostart.ru/public/1056684/
164. salexdv 2327 30.07.20 09:57 Сейчас в теме
(93) Мне не до конца ясна задача. Если вы хотите вставлять уже готовые примеры (картинка 1), то это можно решить через пользовательские сниппеты, правда пока нет механизма их программной вставки. Если надо, я добавлю. Если же речь идет об автодополнении полей (реквизитов) для собственных объектов (картинка 2), то это сильно сложнее. Ладно, когда есть просто объект, в вашем случае он называется "Строка", то подсказку для его полей придумать можно, но дальше из него получается другая переменная "объект", и вот для него уже сложно что-то придумать.
Можете расписать несколько подробнее?
Прикрепленные файлы:
165. Evg-Lylyk 4559 30.07.20 10:36 Сейчас в теме
(164) Со сниппетами все правильно согласен, на помощник справа не обращайте внимание ваше решение его полностью заменяет.
Там смысл такой обрабатывается результат запроса, например Номенклатура - Справочник.Номенклатура, Остаток - Число
Во входном контексте Строка - это строка ТЧ результата она содержит два поля
Строка.Номенклатура - Справочник.Номенклатура
Строка.Остаток - Число
Т.е. нужно задать что Строка - это например структура с двумя полямя Номенклатура, Остаток - ну и имееют соответствующие типа
чтобы автодополнение сработало
166. salexdv 2327 30.07.20 11:00 Сейчас в теме
(165)
(165)
Т.е. нужно задать что Строка - это например структура с двумя полямя Номенклатура, Остаток - ну и имееют соответствующие типа
чтобы автодополнение сработало

Можно сделать только чтобы работало так:
Строка.Ном // тут предлагается номенклатура
Строка. // Предлагается номенклатура и остаток

Автодополнение для поля номенклатуры я точно не сделаю т.е
Строка.Номенклатура. // Тут предлагаются реквизиты номенклатуры

Это всё равно что делать автодополнение для конструкций вида
Запрос = Новый Запрос();
Результат = Запрос.Выполнить();
Таблица = Результат. // Тут предлагается, например, "Выгрузить()"
Таблица. // Тут предлагается, например, "ВыгрузитьКолонку()"

Это уже почти полноценный конфигуратор получается. Надо знать какой тип возвращает каждый метод, какие у этого типа доступны методы и т.д. У меня просто нет столько времени, да и желания тоже, если честно. Консоль она ведь, как вы правильно написали в своей статье, чтобы что-то быстренько сделать, а не для того чтобы совсем не пользоваться конфигуратором. Понимаю, что это упростило бы ваше решение и сделало бы его более удобным, но пока могу предложить только программную вставку сниппетов и автодополнение для произвольных объектов по их имени т.е. описали объект с именем "Строка", для него все поля и автодополнение для полей работает. А вот для полей полей, тут увы...
Evg-Lylyk; +1 Ответить
167. Evg-Lylyk 4559 30.07.20 11:55 Сейчас в теме
(166) Не прошу вычислять хочу на входе все задать чтобы он это понимал
Строка - Коллекция
содержит Номенклатура - Спр.номенклатура, Остаток - Число
168. salexdv 2327 30.07.20 12:09 Сейчас в теме
169. Evg-Lylyk 4559 30.07.20 12:10 Сейчас в теме
(168) Это наверное как то нужно глобальный контекст дополнять
170. salexdv 2327 30.07.20 12:13 Сейчас в теме
(169) Тут можно придумать какую-нибудь структуру, например, как это сейчас сделано с типами т.е. тип "СправочникСсылка" связан с объектом метаданных справочники. Будет описание для объекта "Строка", а в его полях указано, что он связан с конкретным справочником, но не просто это. Быстро не сделаю точно.
Evg-Lylyk; +1 Ответить
171. Evg-Lylyk 4559 30.07.20 12:19 Сейчас в теме
(170) Принял,
Не сочтите что за назойливость, хочу внедрить вашу разработку, но пока до этого не дошел.
Пишу вам о проблемами которые сейчас вижу, когда буду использовать уже сам что-то решу
172. salexdv 2327 31.07.20 11:23 Сейчас в теме
(171) В новом релизе добавил пример загрузки собственных объектов. Если всё сделаете правильно, то будет даже работать подсказка для реквизитов типа СправочникСсылка/ДокументСсылка. Вот так это выглядит.
Пока из-за особенностей реализации подсказка через точку для ссылочных типов работает только тогда, когда подсказываемый реквизит выбран через Enter
Evg-Lylyk; +1 Ответить
94. Evg-Lylyk 4559 23.07.20 13:12 Сейчас в теме
Основное торможение инициализации это ИзвлечьВсе
Было бы идеально если бы инициализация подстановки проходило по обращению написал
"Метаданные." считываются доступные метаданные.
"Перечисление." и аналогично
97. salexdv 2327 23.07.20 13:59 Сейчас в теме
(94) Можно просто не удалять исходники из временных файлов, тогда будет быстрее. В любом случае основной пожиратель времени сейчас - это загрузка поля HTML- документа. Чтобы быстро подсказывать надо все основные выражения держать в памяти, поэтому перед запуском всего этого дела, надо конструкции языка считать.
Evg-Lylyk; +1 Ответить
95. Evg-Lylyk 4559 23.07.20 13:13 Сейчас в теме
Еще бы редактирование запроса на этом механизме хотя бы с подсветкой
98. salexdv 2327 23.07.20 14:04 Сейчас в теме
(95) Сам я за такое не возьмусь, просто нет времени. А так можно описать синтаксис языка запросов и использовать, вот пример.
Evg-Lylyk; +1 Ответить
104. pm74 199 24.07.20 08:56 Сейчас в теме
(0) Добрый день. Еще раз спасибо за обработку. Добавил себе в подсистему (самую малость изменил для быстрой загрузки ) , работает отлично (см скриншот). Теперь вопрос. Я хочу динамически сформировать описание алгоритмов , для автокомплита (по принципу metadata.json в процедуре ОбновитьМетаданные() ) , собрать файл json в 1с естественно без проблем. Вопрос в том как мне это дело добавить в javascript.
Прикрепленные файлы:
105. salexdv 2327 24.07.20 08:59 Сейчас в теме
(104) Если речь про сниппеты (вставка готовых блоков кода), то в планах такое есть, скоро появится.
106. pm74 199 24.07.20 09:07 Сейчас в теме
(105) это не совсем снипеты , скорее похоже на описание функции или процедуры с описанием контекста выполнения , входящих параметров , возвращаемых значений , зависимостей , декораторов и кратким описанием функционала
108. salexdv 2327 24.07.20 10:08 Сейчас в теме
(106) Но работать это должно так? Если нет, то опишите подробнее, пожалуйста.
112. pm74 199 24.07.20 10:29 Сейчас в теме
(108) важно вставить описание , что именно эта функция делает и какие параметры получает на входе , например у глобальных функций работает подсказка при наведении мыши

например

РезультатВыполнения = __ф(КакаяТоМояФункцияСподсказкой, Новый Структура("параметрфункции",значениепараметра));
хотелось бы уже на этапе редактирования понимать какие параметры передаются и какой будет результат
113. salexdv 2327 24.07.20 10:32 Сейчас в теме
114. pm74 199 24.07.20 10:34 Сейчас в теме
(113) тогда вопрос в догонку , структура описания (json) будет произвольной или фиксированной
115. salexdv 2327 24.07.20 10:58 Сейчас в теме
(114) Структура во вложении.
Прикрепленные файлы:
customFunctions.json
116. pm74 199 24.07.20 11:08 Сейчас в теме
(115) отлично !
"name_en": для кастомных функций думаю лишнее
а вот лишнее поле для записи дополнительных данных не помешало бы
(например в моем случае - это зависимость функции от других функций )
117. salexdv 2327 24.07.20 11:51 Сейчас в теме
(116) "name_en" - необязательное поле. Про зависимости не очень понятно. Как это выглядит и как это надо обрабатывать?
118. pm74 199 24.07.20 11:58 Сейчас в теме
(117)
Про зависимости не очень понятно. Как это выглядит и как это надо обрабатывать?

когда внутри какой нибудь функции есть вызов другой функции в идеале весь стек вызовов ))
ну это я размечтался конечно , просто некоторое необязательное поле в котором можно указать любую дополнительную информацию на свое усмотрение
119. salexdv 2327 24.07.20 12:02 Сейчас в теме
(118) Идею я понял. Надо подумать.
120. salexdv 2327 24.07.20 12:34 Сейчас в теме
(118) Можно сделать так, но тут некоторая проблема. Если использовать автокомлит с шаблоном, то не видно описание параметров функции т.к сразу вставляется шаблон.
Пример json прикреплен.
Прикрепленные файлы:
customFunctions.json
121. pm74 199 24.07.20 12:59 Сейчас в теме
(120) но у первой функции видно описание параметров
а правило заполнения шаблонов настраивается в самом шаблоне , ведь так ?
122. pm74 199 24.07.20 13:04 Сейчас в теме
(120) если при наведении мыши (или при выделении слова ) на строку шаблона можно было почитать его описание , как в глобальных функциях , думаю этого было бы достаточно

конечно не представляю насколько трудно это реализовать, но было бы здорово потому , что можно было бы динамически собирать кастомные шаблоны с описанием в.т.ч по текстам выгруженных модулей
123. salexdv 2327 24.07.20 13:56 Сейчас в теме
(122) ближе к вечеру постараюсь выложить релиз
126. salexdv 2327 24.07.20 23:31 Сейчас в теме
(122) В новом релизе добавил примеры для загрузки пользовательских функций и сниппетов. Пробуйте.
129. pm74 199 25.07.20 07:56 Сейчас в теме
(126) сегодня вечером обязательно попробую
134. pm74 199 28.07.20 10:34 Сейчас в теме
(126) подключил свои сниппеты , все работает , большое спасибо
оставлась небольшая проблема , почему то событие HTMLДокументСформирован срабатывает через раз
см примеры

сам каталог с исходниками присваиваю полю HTML

Попытка
HTML = КаталогИсходников + "index.html";
Исключение
ВывестиОшибку(" Неудачная попытка извлечь исходники" + Символы.ПС + ОписаниеОшибки());
КонецПопытки;


интересно это только у меня или нет
Прикрепленные файлы:
135. salexdv 2327 28.07.20 10:49 Сейчас в теме
(134) У себя я ниразу не наблюдал такого, чтобы документ не был сформирован. Попробуйте в таком случае нажать ctrl+shift+alt+f12 и покажите скриншот закладки console
136. pm74 199 28.07.20 11:03 Сейчас в теме
(135) после вызова консоли все начинает работать ))
Прикрепленные файлы:
139. salexdv 2327 28.07.20 12:10 Сейчас в теме
(136) Вы так и не показали, что на закладке "Console" в открывшемся окне :-)
140. pm74 199 28.07.20 12:11 Сейчас в теме
(139) сорри отвлекли , сейчас
141. pm74 199 28.07.20 12:12 Сейчас в теме
(139)
Прикрепленные файлы:
142. salexdv 2327 28.07.20 12:13 Сейчас в теме
145. pm74 199 28.07.20 12:19 Сейчас в теме
(142)
Прикрепленные файлы:
146. salexdv 2327 28.07.20 12:30 Сейчас в теме
(145) Ну тогда трудно сказать, с чем это может быть связано. Тут надо смотреть "на месте".
147. pm74 199 28.07.20 12:42 Сейчас в теме
(146) да ладно вобщем это не сильно напрягает , подсистема в основном заточена не под редактирование , но с помощью вашей консоли редактировать гораздо удобнее
143. pm74 199 28.07.20 12:15 Сейчас в теме
(141) я таки думаю что проблема на стророне 1с
144. salexdv 2327 28.07.20 12:19 Сейчас в теме
(143) Если у вас в консоли нет ничего кроме трех строк, как на скриншоте ниже, то да, надо смотреть как у вас грузится сам HTML-документ.
Прикрепленные файлы:
152. salexdv 2327 29.07.20 12:10 Сейчас в теме
(143) Тоже столкнулся с проблемой, когда поле HTML-документа иногда не формируется. Началось это после того, как перестал удалять исходники из временных файлов. Видимо что-то где-то кэшируется. Решение оказалось в том, чтобы каждый раз при запуске давать файлу index.html уникальное имя перед тем, как присвоить его документу. Можете придумать свой механизм, а можете посмотреть в новом релизе.
153. pm74 199 29.07.20 12:38 Сейчас в теме
(152) понятно, у меня как раз ничего не удаляется ,a путь к исходникам передается в форму через параметры
спасибо за наводку , попробую
155. pm74 199 29.07.20 18:52 Сейчас в теме
(152)
Решение оказалось в том, чтобы каждый раз при запуске давать файлу index.html уникальное имя перед тем, как присвоить его документу. Можете придумать свой механизм, а можете посмотреть в новом релизе.



Проблему (похоже) удалось решить так

HTML ="file:///"+КаталогИсходников + "index.html";
107. savelievD 71 24.07.20 10:08 Сейчас в теме
Я смотрю данные из JS передаются через глобальную переменную. Так как обработка JS идёт в отдельном потоке, то это выглядит не безопасно..Для передачи данных из JS в 1С можно использовать кастомные ивенты.
Я делал по другому:
При загрузке страницы в глобальной переменной сохранить своё событие клика
self.evtClick = new MouseEvent('click');


далее добавим функцию для вызова события 1С :
self.call1C = function (p = null) {
    self.evtClick.data1C = p
    return self.dispatchEvent(self.evtClick)
    }


в итоге прямо в момент вызова 1С получаем данные в 1С в событии "ПриНажатии"
109. salexdv 2327 24.07.20 10:14 Сейчас в теме
(107) Да, ваш вариант более правильный, вот только о какой безопасности тут идет речь?
110. savelievD 71 24.07.20 10:15 Сейчас в теме
(109) я имел в виду, что данные в переменной JS могут уже измениться, до того, как 1С их прочитает.
111. salexdv 2327 24.07.20 10:18 Сейчас в теме
(110) Согласен. Такое возможно, если бы было какое-то постоянное взаимодействие 1С и JS, пока такого у меня нет. Как будет время обязательно присмотрюсь к вашему варианту. Спасибо!
127. salexdv 2327 24.07.20 23:32 Сейчас в теме
(110) Реализовал ваш вариант. Спасибо за наводку!
124. salexdv 2327 24.07.20 23:30 Сейчас в теме
Новое:
1. Загрузка метаданных конфигурации через модуль ДлительныеОперации, если это возможно
2. Функция для установки readonly
3. Подсказка свойств и методов для объектов, созданных через Новый
4. Поддержка пользовательских функций.
5. Функционал для загрузки пользовательских сниппетов и функций.
pm74; Evg-Lylyk; +2 Ответить
132. Evg-Lylyk 4559 28.07.20 09:30 Сейчас в теме
Написал статью зачем нужна консоль кода, рассказал о вашей разработке
133. salexdv 2327 28.07.20 10:07 Сейчас в теме
(132) Отлично! Очень полезно иметь подборку в одном месте.
137. Sibul 28.07.20 11:42 Сейчас в теме
Добрый день!
Подскажите новичку поподробнее, как её запустить. Открывал и броузерами и в 1С файл index.html, везде пустой экран.
Что я желаю не так?
138. salexdv 2327 28.07.20 12:08 Сейчас в теме
(137) Если вы открываете index.html в браузере, то у вас и будет пустой экран. Вернее будет одна пустая строка с номером 1. Дальше можете набирать код и смотреть, как работаю подсказки.
Если вы хотите запустить в 1С, то лучше воспользоваться обработкой из данной публикации, либо можете создать свою обработку, где будет реквизит с типом "Строка", размещенный на форме в виде поля html документа. Присваиваете своему реквизиту адрес к файлу index.html и видите тоже самое, что и в браузере.
Прикрепленные файлы:
148. Sibul 28.07.20 13:34 Сейчас в теме
(138) Спасибо большое, про браузер действительно всё работает, не догадался я начать писать, думал там инсталяция какая нибудь должна запуститься.
Для обработки пока нет подписки к сожалению(((
149. savelievD 71 29.07.20 11:35 Сейчас в теме
Можно включить русский язык в monaco. В начале скрипта подключения добавить
require.config({ 'vs/nls': { availableLanguages: { '*': "ru" } } });

Тогда будет использоваться файл editor.main.nls.ru .
Кстати другие языки можно удалить из исходников, чтобы размер сократить немного... ну или добавить выбор языка.
salexdv; Evg-Lylyk; +2 Ответить
150. salexdv 2327 29.07.20 11:45 Сейчас в теме
(149) Да, я в курсе такой возможности
151. salexdv 2327 29.07.20 12:05 Сейчас в теме
1. Добавлено описание структуры метаданных для следующих объектов: Общие модули, Планы обмена, Планы видов расчета, Планы видов характеристик, Бизнес-процессы, Задачи.
2. Добавлено описание всех типов и подсказка для функции Тип()
3. Команды для добавления CTRL+NUM/ и удаление комментариев CTRL+SHIFT+NUM/
4. По умолчанию для подсказок используется только русские имена функций/объектов. Английский язык опционально.
5. Вставка текста запроса с учетом отступа его первой строки
6. Для ускорения загрузки исходники теперь не удаляются из каталога временных файлов, если не поменялась версия обработки
7. Доработано определения текста запроса и его позиции с учетом возможного наличия в запросе строковых литералов
Evg-Lylyk; +1 Ответить
154. Evg-Lylyk 4559 29.07.20 12:52 Сейчас в теме
(151) Спасибо, очень полезные доработки. Не хватает в консоли после выполнения кода если возникает ошибка чтобы появлялась гиперссылка с ошибкой и происходило позиционирование в тексте
156. salexdv 2327 29.07.20 20:27 Сейчас в теме
157. salexdv 2327 29.07.20 20:28 Сейчас в теме
Добавил выделение строки, при выполнении которой произошла ошибка
Evg-Lylyk; +1 Ответить
158. Evg-Lylyk 4559 30.07.20 07:51 Сейчас в теме
(157) Супер, хорошо бы еще курсор переставить в позицию ошибки
163. salexdv 2327 30.07.20 09:38 Сейчас в теме
159. Simonov_NPM 30.07.20 07:53 Сейчас в теме
БП 3.0, 1С:Предприятие 8.3 (8.3.16.1224)
Пытаюсь выполнить текст который полностью составлен из автоподстановки
Запрос =Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
	|БанковскиеСчета.Владелец КАК Владелец,
	|БанковскиеСчета.Ссылка КАК Ссылка
|ИЗ
	|Справочник.БанковскиеСчета КАК БанковскиеСчета";
Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать();
Пока Выборка.Следующий() Цикл
КонецЦикла;
Показать

Вываливается ошибка:
Поле объекта не обнаружено (ИсходнаяСтрока)
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(582)}: Результат.ИсходнаяСтрока = Ошибка.ИсходнаяСтрока;
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(597)}: Результат = ВыполнитьКодНаСервере(ПолучитьТекст());

Нужно переименовать Переменную Результат
в этой функции, либо менять в сниппете например на РезультатЗапроса
&НаСервере
Функция ВыполнитьКодНаСервере(Текст)
	
	Результат = Новый Структура("Успешно, ИсходнаяСтрока, ОписаниеОшибки", Ложь, "", "");
	
	Попытка
		Выполнить(Текст);
		Результат.Успешно = Истина;
	Исключение
		Ошибка = ИнформацияОбОшибке();		
		Результат.ИсходнаяСтрока = Ошибка.ИсходнаяСтрока;
		Если Ошибка.Причина <> Неопределено Тогда
			Результат.ОписаниеОшибки = Ошибка.Причина.Описание;
		Иначе
			Результат.ОписаниеОшибки = Ошибка.Описание;
		КонецЕсли;
	КонецПопытки;
	
	Возврат Результат;	
	
КонецФункции
Показать


Так как имена совпадают и выходит ошибка
160. salexdv 2327 30.07.20 09:09 Сейчас в теме
(159) Да, тут надо какое-то оригинальное имя придумать для переменной. Переделаю.
162. salexdv 2327 30.07.20 09:38 Сейчас в теме
161. Evg-Lylyk 4559 30.07.20 09:25 Сейчас в теме
Можете ответить на сообщение 93
Как задать входной контекст?
Нужно чтобы в момент редактирования допустим ТЗ уже была типом значений с определенными колонками.
173. salexdv 2327 31.07.20 11:24 Сейчас в теме
Добавил следующие возможности:
1. Подсказки через точку для реквизитов типа справочники/документы
2. Загрузка пользовательских объектов (структур) для использования в подсказках. Пример присутствует.
Rusbread; Evg-Lylyk; +2 Ответить
174. simonov_2015 2 31.07.20 12:40 Сейчас в теме
Платформа 8.3.16.1148
Не работает копипаст из других приложений.
175. salexdv 2327 31.07.20 12:57 Сейчас в теме
(174) Копипаст из других приложений пока не работает на любой платформе.
176. Evg-Lylyk 4559 31.07.20 13:23 Сейчас в теме
Есть маленькие недочеты:
1. В режиме только просмотр в контекстном меню актуальна только команда копировать, остальное лучше скрыть
2. Для добавления комментариев представление горячей клавишу Ctrl + NumPad_Devide, более понятно Ctrl + Num /
177. salexdv 2327 31.07.20 14:53 Сейчас в теме
(176) 1. Не могу на это влиять без сильных костылей
2. Исправил.
178. Fominro 02.08.20 14:34 Сейчас в теме
Добрый день.
Не получается в окно консоли вставить код из буфера обмена.
Так и должно быть?
179. salexdv 2327 03.08.20 09:02 Сейчас в теме
(178) Да, к сожалению, копипаст из других приложений/окон не работает
181. Pr-Mex 136 03.08.20 17:38 Сейчас в теме
(179) Установите самые новые версии платформы. Там это исправлено.
182. salexdv 2327 05.08.20 12:35 Сейчас в теме
(181) 8.3.16.1148 - не работает CTRL+C/V, работает CTRL-A, CTRL-Z
8.3.17.1549 - всё ровно наоборот работает CTRL+C/V, не работает CTRL-A, CTRL-Z
183. Pr-Mex 136 05.08.20 13:44 Сейчас в теме
(182) В 8.3.18 это должно работать. Проверь, плиз.
184. salexdv 2327 05.08.20 16:20 Сейчас в теме
(183) В 8.3.18.891 действительно всё работает. Лишь бы дальше не сломали ))
185. Evg-Lylyk 4559 05.08.20 16:24 Сейчас в теме
(184) Надо что то с этим делать как то обходить
186. salexdv 2327 05.08.20 16:27 Сейчас в теме
(185) Сейчас для этого есть собственные команды Копировать/Вставить, но у этого подхода есть очевидный минус - это работает только для окна редактора т.е. невозможно вставить текст в консоль из другого окна и невозможно скопировать текст из консоли в другое окно. Добавлю проверку для версии платформы. С 8.3.18 должно заработать, как положено.
180. acces969 343 03.08.20 12:04 Сейчас в теме
Вот это вещь! Очень мощный инструмент. Спасибо автору.
Не хватает комбинации ctrl+пробел, а кое где мешают подсказки, которые отсутствуют в конфигураторе. Можно было бы добавить переключатель, отключающий весь функционал, отсутствующий в конфигураторе, чтобы не мешался при машинописи.
187. salexdv 2327 06.08.20 11:04 Сейчас в теме
Новое:
1. Подсказки через точку для объектов типа ТаблицаЗначений/Массив/РезультатЗапроса/ДвоичныеДанные и др., в том числе для объектов, полученных через методы других объектов.
2. Подсказки для объявленных переменных
3. Включение/отключение режима быстрых подсказок. Если подсказки выключены, то для их вызова необходимо использовать CTRL+SPACE
tormozit; Evg-Lylyk; +2 Ответить
188. salexdv 2327 07.08.20 10:54 Сейчас в теме
Новое:
1. Подсветка синтаксиса языка запросов.
2. Включение/отключение карты кода
tormozit; Evg-Lylyk; +2 Ответить
189. tormozit 7136 08.08.20 14:18 Сейчас в теме
Насколько реально прокинуть обработку событий из этого редактора в код 1С? Где то читал, что WEbKit уже не позволяет звать из своего кода методы объектов 1С. На старом HTML движке это работало вроде. Интересуюсь с целью прикрутить свою подсказку к этому редактору.
190. salexdv 2327 08.08.20 14:27 Сейчас в теме
(189) Сам я такого не пробовал, но тоже видел упоминание, что это невозможно. Можно передать подсказку, например, как JSON, а потом уже с помощью JS показывать в нужный момент.
191. tormozit 7136 08.08.20 14:31 Сейчас в теме
(190) Ну а в какой момент запускать мой вычислитель списка подсказки? Нажатие на клавишу "." невозможно платформой обработать
192. salexdv 2327 08.08.20 14:36 Сейчас в теме
(191) Тут надо в JS хранить информацию об объектах, и при нажатии точки определять, что за объект перед точкой стоит и уже от этого действовать. По крайней мере так это реализовано у меня. Возможно, это не единственный путь, но другого я пока не придумал.
193. salexdv 2327 08.08.20 16:52 Сейчас в теме
(191) Еще можно попробовать сделать следующее. При нажатии на точку в редакторе (editor) отрабатывает функция, которая зарегистрирована через registerCompletionItemProvider. Из этой функции генерировать событие нажатия, которое передается в 1С с какими-нибудь параметрами, на стороне 1С запускается вычислитель, а потом обратно в JS передается результат, но во-первых, не уверен, что это будет работать быстро, а во вторых надо будет при обратном вызове из 1С как-то опять в JS вызвать CompletionItemProvider. Думаю, что это как-то можно сделать, надо документацию по API читать или issues просматривать.
196. Evg-Lylyk 4559 17.09.20 18:44 Сейчас в теме
Нашел пару ошибок по комментрированию:
Комментит лишнию строку когда курсор в начале (поведение отличается от конфигуратора), если сложно понять поробуйте закомментить две строке в консоли и в конфигуратор
При комментировании нарушается выделение смещается начальная позиция (видимо на количество добавленных символов)
198. salexdv 2327 17.09.20 20:41 Сейчас в теме
(196) Про выделение понял, посмотрю, что с этим сделать.
Оставьте свое сообщение