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

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

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

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

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

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

Век живи - век учись! Не знал про такое, постараюсь попозже попробовать. Спасибо!
3. login1020 122 17.07.20 10:17 Сейчас в теме
Добрый день, клиент windows, сервер Linux. Заведется?
8. salexdv 2129 17.07.20 10:36 Сейчас в теме
(3) Добрый день! Да должно работать. Вся основная часть работает на клиенте. На сервере только при старте извлекается информация по объектам метаданных, чтобы использовать в подсказках.
4. Поручик 4637 17.07.20 10:18 Сейчас в теме
Ужос, сколько времени потрачено. И всё ради того, чтобы накидать несколько строк и выполнить. Лучше бы сделали нормальный перенумератор.
qwinter; tindir; DrAku1a; Gureev; sasha777666; Evg-Lylyk; +6 15 Ответить
35. salexdv 2129 17.07.20 12:53 Сейчас в теме
(4) Иногда время действительно тратится впустую. Будет ли нужна данная разработка, время покажет. Лично я в процессе получил удовольствие, что уже неплохо.
gimalaj; SagittariusA; ЛЛ Юрий; Jack_off; Somebody1; jONES1979; Sanario; rpgshnik; adhocprog; Dosperanso; Gorus; eden_gmail; _7445_; gigapevt; CyberCerber; JohnyDeath; RustIG; +17 Ответить
65. RustIG 1693 19.07.20 17:49 Сейчас в теме
(35) а) я немного о другом хотел бы спросить: есть ли возможность программировать для 1с на коленке с планшета - в каком-нибудь текстовом редакторе, не используя 1 Гб платформы и 5 Гб конфигурации?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


скорее всего нет.
128. salexdv 2129 24.07.20 23:33 Сейчас в теме
(82) Добавил подсказку свойств и методов для объектов, созданных через Новый
Evg-Lylyk; +1 Ответить
90. salexdv 2129 23.07.20 11:42 Сейчас в теме
Добавил контекстное меню для команд "Копировать/Вставить", "Конструктор запроса", "Конструктор форматной строки"
Evg-Lylyk; +1 Ответить
Оставьте свое сообщение
Вакансии
Системный архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

Функциональный архитектор
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 250 000 руб. до 300 000 руб.
Полный день

Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день