Имя: Пароль:
1C
1C 7.7
v7: Как подружить Cursor AI и 1С 7.7: работа с исходниками Turbo MD vs #ЗагрузитьИзФайла
↓Ø (Волшебник 15.09.2026 20:55)
0 evgpinsk_
 
12.09.26
09:12
Добрый день.
Задумался над тем, чтобы полноценно подключить Cursor к написанию кода в 1С.
Цель — натравить ИИ на папку с исходниками как на обычный проект, чтобы Cursor мог вносить правки напрямую в файлы, а мне не приходилось постоянно переносить код руками туда-сюда.

Вижу два варианта
Вариант 1: Через директиву #ЗагрузитьИзФайла в нужным мне документах/справочниках
Вариант 2: Использование готовой структуры TurboMD.
Так как конфигурация уже распаковывается скриптом 1S Turbo MD, все модули уже лежат в виде текстовых файлов в структуре вида:
".\unpack\Документ\ВозвратПоГарантии\Форма\Диалог.txt"

Скорее всего логичней вариант №2, большинство нужных модулей уже выгружено через turboMD.

Может случаем ктото уже юзает чтото подобное, обсудить нюанcы?
1 Волшебник
 
12.09.26
09:17
Cursor отключили в России
2 evgpinsk_
 
12.09.26
10:25
(1) Да, в начале сентября пришлось немного помучаться, новый аккаунт завёл и юзаю через VPS (сервер за 5уе взял в Нидерландах). В настройках курсора пришлось выбрать HTTP 1.1 - тормозит изза этого скорее всего.
2.0 так и не хочет работать
3 obs191
 
12.09.26
09:28
4 evgpinsk_
 
12.09.26
09:34
(3) Если я правильно разобрался - инструмент из статьи только для чтения конфигурации. Я же хочу на лету править через курсор модули конфигурации.
5 evgpinsk_
 
12.09.26
11:08
Чтото не могу понять, одновременно использовать и TurboMD и #ЗагрузитьИзФайла
нет возможности?
п.с.
Насколько я понял, #ЗагрузитьИзФайла мне использовать не нужно. я просто в курсоре в проекте работаю напрямую с папкой  D:\Конфигурации\Имя_конфигруации\unpack\
и курсор там правит файлы напрямую
6 evgpinsk_
 
12.09.26
11:26
Единственное не очень понятно пока, Когда я параллельно работаю в конфигураторе, как мне легко и быстро видеть изменения, которые курсор внес напрямую в файлы папки unpack. По умолчание у скрипта TurboMD есть только LoiadFromFilesToMD и эта команда заливает в конфигуратор Все файлы. А хочется по аналогии с выгрузкой текущего окна UnloadCurrentWND иметь ещё и Загрузку текущего открытого окна
7 evgpinsk_
 
12.09.26
12:03
Да, нужно привыкать мыслить чуть масштабней - даём эту задачу ИИ и он (у меня Cursor) выдаёт решение )
Сам определил как работает turboMD, на мисте кстати нашёл примеры и затем подправил файлик TurboMD.vbs и нужную команду loadCurrentWND имею теперь в меню TurboMD конфигуратора).

Теперь можно большую часть работы перенести в курсор, там даём задачи и он на лету правит txt файлы кода.
8 Злопчинский
 
12.09.26
15:36
(7) ну дык надо выложить подправленный vbs

приходи на клюшечный форум https://forum.dorex.pro
там мы тусуемся, можнатые мамонты вымирающей эпохи...
9 evgpinsk_
 
13.09.26
10:29
(8) Да, там всё просто оказывается, раньше о таком даже не думал )
10 evgpinsk_
 
13.09.26
13:04
Вот так теперь через курсор работаю с конфигурацией 1с. Все правки курсор делает напрямую в текстовые файлы, turboMD их налету применяет. Конфигуратор теперь использую только лишь для визуального, более удобного просмотра кода. А большинство задач уже решаю через курсор
11 Злопчинский
 
13.09.26
21:02
(10) ии в виде чего?
Как устанавливается?
Какой софт еще нужен?
12 Злопчинский
 
13.09.26
21:04
Пытал тут собратьев по 77 у кого групповая разработка.
Не нашлось таких. В некоторых мелких проектах приходится работать параллельно с другими прогам, а конфига неразделяемый ресурс, да еще иногда и над одним объектом правки вносятся. Хотел какую-нить систему версионирования заюзать но видно не судьба
13 Злопчинский
 
13.09.26
21:10
Сидел сегодня хоббиничал целый день.
Да, код получился хороший, лаконичный по сравнению с тем что сначала было. Но... Начал расти по стеку вызовов как в снеговике. Если тормознуть отладчиком где-нибудь в середине функции/процедуры - хрен понятно в каком контексте это выполняется.
Поэтому ради экономии 10-15 строк "подобного" кода делать еще один уровень вложенности функций с расширением списка параметров доя универсальности - не стал так делать...
14 Злопчинский
 
13.09.26
21:12
(10) ты крут!
Формексом еще можно формы и модули загружать/подменять
15 evgpinsk_
 
13.09.26
22:25
(11) Я юзаю Cursor. IDE софтина работает локально, у меня через VPS. Через VPN тоже по идее должна
16 Злопчинский
 
13.09.26
23:00
Локально это когда локально. Без интернета
17 evgpinsk_
 
14.09.26
08:22
(16) Такое бывает ? )
У меня рабочее место только на сервере, куда без инета не зайти )
18 toypaul
 
гуру
14.09.26
14:51
(12) md же разбирается на текстовые файлы и собирается обратно? проблемы будут только с mxl и картинками. возможно mxl тоже научились в текст выгружать/загружать. а картинки в исключения.

ну и дальше как у всех - git  или любая другая система контроля версий.
19 toypaul
 
гуру
14.09.26
14:53
+ (18) Надо спросить на Инфостарте у artbear по-моему он (с коллегами) в давние времена этим занимался. Ну и вообще кажется, что все кто давно работают с git начинали эту работу с 7.7.
20 vladmenleo
 
15.09.26
05:54
(8) Хотел макрос на загрузку текущего окна? Получи
Sub LoadCurrentWnd()
    Set w = Windows.ActiveWnd
    If w Is Nothing Then
        MsgBox "Нет активного окна", vbOKOnly, "TurboMD"
        Exit Sub
    End If
    Set d = w.Document
    If d.ID < 2 Then
        MsgBox "Окно ни форма, ни модуль", vbOKOnly, "TurboMD"
        Exit Sub
    End If
    If d = docWorkBook Then ' Форма
       If MsgBox("Загрузить форму?", vbQuestion + vbYesNo, "TurboMD") = vbYes Then
      fName = BaseDir & Replace(d.Page(0).Name, ".", "_") ' В оригинале было fName = BaseDir & Replace(d.Page(0).Name, ".", "\")
      fName = fName & ".txt"
      If d.Page(0).LoadFromFile(fName) <> True Then
              Message "Не удалось загрузить " & d.Name & " из " & fName, mBlackErr
          Else
              Message d.Page(0).Name & " загружен из " & fName, mInformation
          End If
       End If
       If MsgBox("Загрузить модуль?", vbQuestion + vbYesNo, "TurboMD") = vbYes Then
      fName = BaseDir & Replace(d.Page(1).Name, ".", "_") ' В оригинале было fName = BaseDir & Replace(d.Page(1).Name, ".", "\")
      fName = fName & ".txt"
          If d.Page(1).LoadFromFile(fName) <> True Then
              Message "Не удалось загрузить " & d.Name & " из " & fName, mBlackErr
          Else
              Message d.Page(0).Name & " загружен из " & fName, mInformation
          End If
       End If
    End If
End Sub
21 evgpinsk_
 
15.09.26
08:22
(20) спасибо но ИИ его сам дописал )
22 vladmenleo
 
15.09.26
08:24
(21) Так ты-же его не выложил :-) Его написать было делов-то на полчаса
23 evgpinsk_
 
15.09.26
08:26
Кстати вопросик, а имеет смысл использовать через тот же курсор файлы диалогов? Или это только забивает контекст и доступ к ним лучшем запретить?
24 evgpinsk_
 
15.09.26
08:27
(22) 1 Промт 1 одна минута у курсора ушла). Да как-то не подумал  и не выложил
25 evgpinsk_
 
15.09.26
08:28
А вообще сама идея норм? Каких-то инструментов ещё круче нету? Я если честно кайфую сейчас)
26 Буковка
 
15.09.26
15:59
(25) можете прислать пример задачи, которую делаете, и запрос?
27 Бычье сердце
 
15.09.26
16:23
(25)
"Я если честно кайфую сейчас"

Предоставьте пользователям инструмент))
28 Злопчинский
 
15.09.26
18:31
Да, непонятно как что настраивать...
29 mikecool
 
15.09.26
18:36
я один не понимаю - в чем кайф?
30 Злопчинский
 
15.09.26
18:46
Для ии где же какие-то mcp нужны...? Что это? Откуда его взять?
31 _Batoo
 
15.09.26
20:49
(29)

ТС пишет промт: напиши мне код что если КоличествоДокументов > 1000, то в этом случае нужно флаг ПревышенЛимит установить равным Истина, в остальных случаях флаг ПревышенЛимит равен Ложь
ответ ИИ: ПревышенЛимит = КоличествоДокументов > 1000

*ТС кайфует*
32 Волшебник
 
15.09.26
20:55
хватит разврата