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

0. salexdv 1873 16.07.20 21:51 Сейчас в теме
Консоль кода для управляемых форма с подсказками и подсветкой синтаксиса.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 5962 17.07.20 10:11 Сейчас в теме
Круто. Не увидел возможности простой обработки событий автодополнения (подсказки) в коде 1С. Поэтому писать сложный вычислитель свойств/методов через точку в таком виде будет очень накладно.
10. salexdv 1873 17.07.20 10:42 Сейчас в теме
(1) Что имеется в виду? Есть подсказка полей и методов для объектов полученных вот так
АвансовыйОтчет = Документы.АвансовыйОтчет.НайтиПоНомеру("XXX");

Но там довольно примитивное определение. Ищем чтобы в выражении присваивания были сами метаданные, например "Документы", объект метаданных и метод этого объекта. Для простоты считается, что все методы возвращают ссылку/объект.
Полноценные подсказки сделать, конечно, очень сложно.
14. kuntashov 408 17.07.20 11:11 Сейчас в теме
Круто! Исходников самой обработки почему-то на гитхабе нет в репозитории, логично было бы все вместе положить.
Evg-Lylyk; artbear; +2 Ответить
19. salexdv 1873 17.07.20 11:13 Сейчас в теме
(14) Точно. Выложу чуть позже в релизах
195. DrAku1a 1315 30.08.20 17:24 Сейчас в теме
(10) Полагаю, имеется в виду подсказка по процедурам и функциям модулей, как реализовано в "Инструментах разработчика" (на обычных формах). Для управлялок - это сложный момент.
2. pm74 179 17.07.20 10:13 Сейчас в теме
Отлично сделано,
А с консолью запросов почему проблемы?
9. salexdv 1873 17.07.20 10:38 Сейчас в теме
(2) С консолью нет никаких проблем, просто это отдельная тема. Можно взять любую для управляемых форм и добавить сюда, лишь бы она возвращала текст запроса.
15. pm74 179 17.07.20 11:11 Сейчас в теме
(9)
можно использовать стандартный
    Конструктор = Новый КонструкторЗапроса;
    ВыделенныйТекст = Элементы.ТекстАлгоритма.ВыделенныйТекст;
    ВесьТекст = Элементы.ТекстАлгоритма.ТекстРедактирования;
    НайтиВесьТекстВКавычках (ВыделенныйТекст,ВесьТекст);
    Конструктор.Текст = СтрЗаменить(ВыделенныйТекст ,"|",""); 
    ДополнительныеПараметры = Новый Структура("ПервыйВызовКонструктора,ВесьТекст,ВыделенныйТекст",СтрНайти(ВыделенныйТекст,"ВЫБРАТЬ")=0,ВесьТекст,ВыделенныйТекст);
    Оповещение = Новый ОписаниеОповещения("ПолучитьТекстЗапроса",ЭтотОбъект,ДополнительныеПараметры);
    Конструктор.Показать(Оповещение);

Показать
tsmult; salexdv; +2 Ответить
22. salexdv 1873 17.07.20 11:18 Сейчас в теме
(15)
можно использовать стандартный

Век живи - век учись! Не знал про такое, постараюсь попозже попробовать. Спасибо!
3. login1020 69 17.07.20 10:17 Сейчас в теме
Добрый день, клиент windows, сервер Linux. Заведется?
8. salexdv 1873 17.07.20 10:36 Сейчас в теме
(3) Добрый день! Да должно работать. Вся основная часть работает на клиенте. На сервере только при старте извлекается информация по объектам метаданных, чтобы использовать в подсказках.
4. Поручик 4428 17.07.20 10:18 Сейчас в теме
Ужос, сколько времени потрачено. И всё ради того, чтобы накидать несколько строк и выполнить. Лучше бы сделали нормальный перенумератор.
DrAku1a; Gureev; sasha777666; Evg-Lylyk; +4 12 Ответить
35. salexdv 1873 17.07.20 12:53 Сейчас в теме
(4) Иногда время действительно тратится впустую. Будет ли нужна данная разработка, время покажет. Лично я в процессе получил удовольствие, что уже неплохо.
Gorus; eden_gmail; _7445_; gigapevt; CyberCerber; JohnyDeath; Rustig; +7 Ответить
65. Rustig 1556 19.07.20 17:49 Сейчас в теме
(35) а) я немного о другом хотел бы спросить: есть ли возможность программировать для 1с на коленке с планшета - в каком-нибудь текстовом редакторе, не используя 1 Гб платформы и 5 Гб конфигурации?

б) можно ли ваш редактор вынести в интернет, работая в нем в тонком клиенте или веб-клиенте (последний предпочтительнее, чтобы попробовать программировать на коленке с планшета)?
66. salexdv 1873 19.07.20 20:27 Сейчас в теме
(65) в теории можно сделать сайт, заходя на который из любого современного браузера возможно будет набирать код с подсветкой и подсказками, а еще делиться своим кодом с другими, аля https://pastebin.com/. Точно был сервис, сейчас не вспомню названия, где можно было 1С-ный код расшарить, но там была чисто раскраска кода. Было бы отлично всё это сделать на базе Инфостарта, чтобы долго не вспоминать адрес сайта. Какой-нибудь https://code.infostart.ru. Сам я такой сайт сделать могу, но нужно время, которого практически нет.
json; CyberCerber; cleaner_it; +3 Ответить
79. hamsar 10 22.07.20 19:14 Сейчас в теме
194. salexdv 1873 21.08.20 16:09 Сейчас в теме
(65) Вот что-то подобное. Программированием в полном смысле я бы это не назвал, но на коленке с планшета записать можно.
5. CyberCerber 623 17.07.20 10:30 Сейчас в теме
Круто, спасибо! Когда увидел ту новость по Ванессе, тоже сразу об этом подумал, но руки не дошли...
DmitrySinichnikov; +1 Ответить
6. CyberCerber 623 17.07.20 10:32 Сейчас в теме
А на гитхабе выложили только веб- составляющую обработки?
7. salexdv 1873 17.07.20 10:35 Сейчас в теме
(6) Да. Это собственно лежит в макете обработки, извлекается на клиенте и запускается в поле HTML-документа
11. awk 718 17.07.20 10:43 Сейчас в теме
А можно использовать в своих проектах? Какая лицензия?
12. salexdv 1873 17.07.20 10:54 Сейчас в теме
(11) Конечно, можно. MIT
gigapevt; DmitrySinichnikov; JohnyDeath; PowerBoy; awk; pm74; +6 Ответить
20. pm74 179 17.07.20 11:15 Сейчас в теме
(12) вот спасибо , хотел уже сам что то монстрить , а тут такая годнота
DmitrySinichnikov; +1 Ответить
23. salexdv 1873 17.07.20 11:20 Сейчас в теме
(20) Можно и своё сделать. Даешь больше редакторов красивых и умных! :-) Возможно ваш будет круче и это хорошо.
DmitrySinichnikov; +1 Ответить
26. pm74 179 17.07.20 11:37 Сейчас в теме
(23)
Возможно ваш будет круче

вряд ли , да и зачем велосипед изобретать , просто закрою одну из задач
13. frkbvfnjh 590 17.07.20 10:58 Сейчас в теме
А кто знает как достать просто список всех встроенных процедур и функций 1С на русском и английском? А еще лучше все типы и методы всех объектных типов
16. salexdv 1873 17.07.20 11:11 Сейчас в теме
36. frkbvfnjh 590 17.07.20 13:09 Сейчас в теме
17. tormozit 5962 17.07.20 11:12 Сейчас в теме
(13) В ИР есть общая форма "ирОбновлениеОписанияПлатформы". Там все есть, кроме пока английских имен (для экономии размера не стал их доставать). Она извлекает описание платформы из той версии платформы, на которой запущено клиентское приложение.
JohnyDeath; artbear; pm74; salexdv; Evg-Lylyk; +5 Ответить
37. frkbvfnjh 590 17.07.20 13:10 Сейчас в теме
18. informa1555 1542 17.07.20 11:13 Сейчас в теме
70. user1308849 20.07.20 09:49 Сейчас в теме
(18) Хорошо бы прикрутить к Simpl-у
72. informa1555 1542 20.07.20 11:00 Сейчас в теме
(70) Да, было бы не плохо если автор не против
73. salexdv 1873 20.07.20 11:16 Сейчас в теме
21. zarankony 17.07.20 11:17 Сейчас в теме
Круто, но работает не везде: на файловой пашет, на терминале нет, дело скорее всего в правах доступа. прикручу к своей Консоли запросов с исполнением кода, если Вы не против. В Вашей обработке бы не помешала таблица с параметрами, которые можно выбирать из данных.
24. salexdv 1873 17.07.20 11:32 Сейчас в теме
(21) Надо смотреть что происходит при открытии обработке. Вообще во всех основных современных браузерах по умолчанию блокируется загрузка локальных файлов, а именно в таких файлах лежит описание синтаксиса языка. Поэтому, чтобы работало в том же Chome, его надо запустить с ключом --allow-file-access-from-files. Я ожидал, что в 1С-ке по умолчанию не заработает и тогда файлы с синтаксисом надо будет выносить на внешний сервер, но нет, всё запустилось. А вот в Linux уже работать не хочет, видимо по этой самой причине.
Я не против использования.
25. Pr-Mex 128 17.07.20 11:35 Сейчас в теме
27. leosoft 147 17.07.20 11:41 Сейчас в теме
1. А как свои сниппеты создавать?

2, создал Сотрудники = Справочники.Сотрудники.НайтиПоКолу("000001"):

а далее ввожу Справочники. и почему-то ничего не выскакивает?
28. salexdv 1873 17.07.20 11:50 Сейчас в теме
(27) 1. Макет обработки это архив. Снипетты лежат в файле snippets.json. Можно добавить туда, перепаковать и вложить обновленный файл в макет. На лету создание сниппетов не предусмотрено.
2. Какого поведения вы ждете? Для выражения "Справочники." подсказка показывается я проверил. для "Сотрудники." тоже должна. Возможно, у вас опечатка НайтиПоКолу
29. leosoft 147 17.07.20 11:57 Сейчас в теме
(28) НайтиПоКоду - это у меня правильно сгенерировалось...
Сейчас по новой запустил - заработало! Чудеса!
30. salexdv 1873 17.07.20 12:00 Сейчас в теме
(29) Ну на самом деле может и не чудеса, а обычные глюки и недоработки. Версия пока еще достаточно сырая.
31. the1 601 17.07.20 12:26 Сейчас в теме
Очень круто! Спасибо!

Заметил, что в подсказку не попадают табличные части. Так задумано или это баг?
Прикрепленные файлы:
32. salexdv 1873 17.07.20 12:28 Сейчас в теме
(31) Не баг, просто не реализовано. В задумках есть, чтобы попадали
33. Evg-Lylyk 3068 17.07.20 12:33 Сейчас в теме
Здорово, спасибо за работу
Мне кажется заголовок публикации нужно уточнить указав VSCode, подсветку синтаксиса, контекстную подсказку
Сейчас из заголовка кажется очередная консоль кода ничего примечательного
JohnyDeath; ilya.rudziak; +2 Ответить
34. salexdv 1873 17.07.20 12:46 Сейчас в теме
(33) Спасибо за отзыв! Подсказка и подсветка и так указаны в описании, которое видно и в поиске и в обычном списке разработок, да и мне самому не кажется, что консоль чем-то необычна. Думаю, что в ней еще полно глюков и недоработок. Та же консоль из инструментов разработчика умеет гораздо больше, хоть по ощущениям немного медленнее, правда там обычные формы, насколько я помню.
38. artbear 1193 17.07.20 14:05 Сейчас в теме
39. salexdv 1873 17.07.20 14:09 Сейчас в теме
40. orefkov 2061 17.07.20 14:14 Сейчас в теме
Что использовали для редактора? Ace, Codemirror, Monaco?
Хотя, судя по внешнему виду, это Monaco от VCS?
42. salexdv 1873 17.07.20 14:40 Сейчас в теме
46. salexdv 1873 17.07.20 14:57 Сейчас в теме
(40) Александр, у вас опыт в этой области просто огромный. Может сделаете свою "тонкую" версию снегопата?
56. orefkov 2061 17.07.20 19:02 Сейчас в теме
(46) Не-не-не, мне теперь и со снегопатом забот хватает :)
Я бы лучше наоборот сделал - в Конфигураторе прикрутил Monaco, благо ПолеHTMLДокумента и там доступно, но понятно, что релизы до 8.3.14 пролетают, то есть такое себе EDT наоборот :)
Il; Cmapnep; artbear; +3 Ответить
57. artbear 1193 17.07.20 19:10 Сейчас в теме
(56) Думаю, что релизы до 8.3.14 достаточно быстро устареют и разработчикам будет доп.стимул заюзать новые версии платформы )
41. Yashazz 3415 17.07.20 14:15 Сейчас в теме
Тоже собирался монстрить подобно, на основе форматированного документа, но руки не доходили. И всё время казалось, что ну вот ещё чуть-чуть, и в очередной платформе это появится как штатная возможность...
44. salexdv 1873 17.07.20 14:42 Сейчас в теме
(41) Не думаю, что будет штатная возможность в режиме клиента, хотя кто знает, кто знает.
49. Yashazz 3415 17.07.20 15:42 Сейчас в теме
(44) А вот как им всерьёз надоест, например, с кодом в КД 3.0 мучиться, так и сделают)
43. cprit 381 17.07.20 14:41 Сейчас в теме
Начал делать такое в универсальных инструментах на базе ace редактора. Но до подсказок метаданных руки не дошли. Теперь перейду на этот механизм
Спасибо, очень крутое решение
45. salexdv 1873 17.07.20 14:50 Сейчас в теме
(43) Monaco editor просто используется в VSCode и у него очень крутой API. Попробуйте, может даже что-то своё придумаете еще круче и еще функциональнее.
47. artbear 1193 17.07.20 15:11 Сейчас в теме
(45) Поздравляю, насколько я понимаю, Вы первый в мире 1С, который сделал и выложил в открытый доступ технологию подключения Монако к инструментарию 1С.

Все остальные уже будут вторыми )

Повторюсь - очень круто!
sikuda; PowerBoy; zeegin; Evg-Lylyk; +4 Ответить
48. salexdv 1873 17.07.20 15:30 Сейчас в теме
(47) Думаю, что первым всё таки был Леонид и проект vanessa-automation. Я просто подсмотрел :-)
50. artbear 1193 17.07.20 15:48 Сейчас в теме
(48) Он был первым в видео, а Вы первый дали готовый код в опенсорс. Это важное достижение.
51. artbear 1193 17.07.20 15:49 Сейчас в теме
(0) я правильно понимаю, что будет работать только на 8.3.14 и выше?
52. salexdv 1873 17.07.20 16:17 Сейчас в теме
53. Mortum 17.07.20 16:57 Сейчас в теме
Но зачем? У кого-то конфигуратор отобрали?)
54. salexdv 1873 17.07.20 17:04 Сейчас в теме
(53) Сценарии использования каждый может придумать свои. Если оно вам не надо, никто не настаивает.
55. zeegin 89 17.07.20 18:01 Сейчас в теме
Мне кажется очень круто, молодец!

Из очевидных плюсов:
- Все очень просто для понимания, не требует разбираться контрибьютерам в каких-либо сложных механизмах.

Из очевидных минусов:
- Копировать на клиент исполняемые файлы перед загрузкой в вебкит - это плохо и небезопасно.
- Практически нет взаимодействия с 1С:Предприятием.
58. salexdv 1873 17.07.20 20:32 Сейчас в теме
(55) Спасибо за отзыв! Когда JS часть была готова, если это можно назвать готовность, я размышлял по поводу того, как это прикрутить к 1С. Был вариант не тащить всё на клиент, а загружать с сервера. Пока выбрал то, что выбрал. У меня и сейчас нет мнения как лучше. Думаю, что оба варианта жизнеспособны. Код в макете, возможно, хорош для законченных, поставляемых решений. А по поводу взаимодействия не очень понял, что имеется в виду? Думаю, что чуть позже прикручу конструктор запросов и сохранение/загрузку кода в файлы. Или вы про то, что нет подсказки по общим модулям и экспортируемым функциям?
59. zeegin 89 17.07.20 20:47 Сейчас в теме
(58) Хорошо когда файлы не нужно тащить на клиент и когда не нужно использовать веб-сервер :)

Может быть я ошибаюсь, но я не увидел возможности из редактора вызвать 1С.
60. salexdv 1873 17.07.20 21:08 Сейчас в теме
(59) На первой картинке "Выполнить на клиента" и "Выполнить на сервере"
61. zeegin 89 17.07.20 21:18 Сейчас в теме
(60) Я не про это: это кнопки на стороне 1С.
Я про то, когда редакор говорит 1С что надо что-либо выполнить.

Например когда в редакторе устанавливается брейкпоинт и он говорит 1С куда именно.
62. salexdv 1873 17.07.20 22:12 Сейчас в теме
(61) Тут я бессилен без поддержки таких штук на уровне платформы.
Tahallus; +1 Ответить
63. Pr-Mex 128 18.07.20 10:02 Сейчас в теме
(62) zeegin решил эту задачу.
На днях будет всё будет опубликовано, там можно будет посмотреть.
64. Tailor_Made 19.07.20 10:48 Сейчас в теме
67. iiceberg 89 19.07.20 20:32 Сейчас в теме
Красота и восторг.
После первого использования, что бы хотелось...
1. Таб.части в подсказках (видел. в работе).
2. Подсказки в запросах. (Значение(Перечисление.ХХХХХ.УУУУ) и поля объекта)
3. Автозаполнение и подсказка переменных.
4. После выбора конструкций КонецЕсли и КонецЦикла автоматически закрывать ";"
5. На Платформе "1С:Предприятие 8.3 (8.3.17.1386)" ОС = Win7 не работает сочетание [ctrl]+[A] и понкт меню "выделить все".

В качестве бреда: Похватывать в подсказки "шаблоны текстов" из настроек. (или выбирать в настройках обработки конкретный файл)

Спасибо!
68. salexdv 1873 19.07.20 20:33 Сейчас в теме
(67) Спасибо за отзыв!
Постараюсь реализовать.
69. Totoro 553 19.07.20 22:56 Сейчас в теме
71. user701505_oavperm 20.07.20 10:10 Сейчас в теме
74. Totoro 553 20.07.20 11:30 Сейчас в теме
(0) Сделал вариант для Конвертации данных 3. Толку пока мало, но пользоваться удобнее. TipsInCD3
aayukhanov_corp; Evg-Lylyk; cprit; salexdv; +4 Ответить
75. salexdv 1873 20.07.20 11:50 Сейчас в теме
76. Gorus 45 22.07.20 10:20 Сейчас в теме
Из критичного - не хватает клавиатурных сокращений: Ctr+C, Ctr+V, Ctr+Z, Ctr+Y
А так - весьма круто!
77. 1С_Мастер 64 22.07.20 12:53 Сейчас в теме
(76) Не только клавиатурный сокращений. Копипаст при помощи мышки тоже не работает.
80. salexdv 1873 22.07.20 21:02 Сейчас в теме
(76) (77) Сделал, но только клавиатурные
78. Evg-Lylyk 3068 22.07.20 17:27 Сейчас в теме
(0) Изменения лучше писать в комментариях т.к. на них есть уведомления
81. salexdv 1873 22.07.20 21:03 Сейчас в теме
1. Добавлены подсказки для табличных частей и предопределенных элементов
2. Сворачивание циклов, условий и текстов запросов
3. Всплывающие подсказки для глобальных функций, перечислений и классов
4. Добавление ; после ключевых слов КонецЦикла, КонецЕсли
5. Исправления для нормальной работы сочетаний клавиш CTRL+C, CTRL+V и CTRL+Z
6. Кнопка (CTRL+F2) для замены всех вхождений
Evg-Lylyk; +1 Ответить
84. Gorus 45 23.07.20 08:58 Сейчас в теме
(81)

5. Исправления для нормальной работы сочетаний клавиш CTRL+C, CTRL+V и CTRL+Z

Клавиатурные сочетания все-равно не работают (иногда работает CTRL+Z, но как то странно - больше на автокомплит похоже а не на отмену). Платформа 8.3.15.1656.
Кроме этого для команды "ВыполнитьНаКлиенте" нужно привязать действие "ВыполнитьНаКлиенте"
85. salexdv 1873 23.07.20 09:37 Сейчас в теме
86. Gorus 45 23.07.20 10:05 Сейчас в теме
87. salexdv 1873 23.07.20 10:49 Сейчас в теме
(86) Видимо проблема в раскладке. На En все работает, а на Ru копировать/вставить не хотят. Спасибо, буду разбираться.
88. Gorus 45 23.07.20 11:05 Сейчас в теме
(87) У меня и на ENG не работают. Всего настроено три раскладки и основной язык системы - украинский.
89. salexdv 1873 23.07.20 11:14 Сейчас в теме
(88) Можете открыть обработку в 1С, затем открыть файл %TEMP%\bsl_console\test.html в браузере и попробовать копирование/вставку в разных вариантах, и потом отписаться?
101. Gorus 45 23.07.20 14:09 Сейчас в теме
(89)В test.html копирование/вставка работают во всех раскладках. И CTRL+Z тоже работает нормально.
102. salexdv 1873 23.07.20 14:44 Сейчас в теме
(101) Понял. Попробую потестировать на других конфигурациях.
130. salexdv 1873 27.07.20 09:46 Сейчас в теме
(101) Тут видимо проблема в самой платформе 8.3.15.хххх. У вас есть возможность проверить на 8.3.16 и выше, а затем сообщить о результатах?
131. Gorus 45 27.07.20 11:00 Сейчас в теме
(130) Да, на 8.3.16 копирование / вставка работают. Так что проблема в платформе.
82. German 874 23.07.20 06:53 Сейчас в теме
А типы Локальных переменных будет определять?

Запр = Новый Запрос();
Запр.
83. salexdv 1873 23.07.20 08:47 Сейчас в теме
(82) Для объектов, созданных через
Новый
будет чуть позже.
Для более сложных конструкций, например

ТаблицаТоваров = РезультатЗапроса.Выгрузить();
СписокТоваров = ТаблицаТоваров.ВыгрузитьКолонку("ххх");
СписокТоваров.


скорее всего нет.
128. salexdv 1873 24.07.20 23:33 Сейчас в теме
(82) Добавил подсказку свойств и методов для объектов, созданных через Новый
Evg-Lylyk; +1 Ответить
90. salexdv 1873 23.07.20 11:42 Сейчас в теме
Добавил контекстное меню для команд "Копировать/Вставить", "Конструктор запроса", "Конструктор форматной строки"
Evg-Lylyk; +1 Ответить
91. Evg-Lylyk 3068 23.07.20 12:45 Сейчас в теме
(0) Спасибо что продолжаете развитие
Еще бы неплохо функции
Форматировать
Отступ +
Отступ -
Добавить/убрать комментарии
Добавить/убрать перенос строки

Подсказка после Метаданные. не работает (это не критично) наверное еще много подобного
Смущает долгая инициализация, когда будет ERP сколько она будет идти
Прикрепленные файлы:
99. salexdv 1873 23.07.20 14:06 Сейчас в теме
(91) Насчет функций форматирования подумаю. Подсказки по метаданным, как и по многим другим объектам действительно пока нет. Тут нужно просто сесть и дописать все это в уже существующее описание языка в формате JSON. Как только буду чуть свободнее, обязательно сделаю.
Оставьте свое сообщение
Вопросы с вознаграждением