Оформлятор модулей 1С

12.02.25

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

Расширяемый форматтер структуры модулей 1С. Умеет автоматически расставлять стандартные области и раскидывать по ним процедуры и функции модуля, оформлять стандартные комментарии к методам с помощью ИИ. Также умеет анализировать модуль - извлекать структуру вызовов, используемые поля и т.д. Реализован в виде расширения (.cfe). Можно использовать как платформу для обработки кода в своих задачах автоматизации разработки.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Оформлятор модулей 1С:
.cfe 183,93Kb
344
344 Скачать бесплатно

Наверняка каждый 1С-ник сталкивался с ситуацией, когда код модуля со временем превращается в нечто, напоминающее непроходимые джунгли. Приведение кода в порядок — довольно трудоемкая рутина, поэтому многие часто на это "забивают". Тем более, что заказчики редко предъявляют требования к тому, как их требования должны быть реализованы внутри. В итоге, в мире 1С-разработки довольно много неаккуратных модулей и кода, который читать — настоящее испытание.

Выкладываю свой инструмент «Оформлятор модулей 1С», который позволяет автоматизировать эту рутину. Что умеет:

1. Автоматически расставляет стандартные области  ОбработчикиСобытий, СлужебныеПроцедурыИФункции и т.д. Можно сформировать структуру модуля вручную — для этого есть простой интерфейс.

2. Генерирует комментарии к методам с помощью ИИ 
Останется лишь поправить, если что-то не так.

3. Извлекает из кода полезную информацию  
Например, графы вызовов, обращения к полям и т.д.

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

 

Типовой сценарий использования:

  1. Копирование модуля из Конфигуратора 1С (или из EDT): открыть нужный модуль, Ctrl + A, затем Ctrl + C.
  2. Разбор модуля в «Оформляторе»:
    • В инструменте выбрать «Добавить модуль» → «Из текста».
    • Вставить скопированный текст (Ctrl + V).
    • Нажать «Разобрать».
  3. Расстановка областей: меню «Действия» → «Расстановка областей».
  4. Генерация документации для методов (если требуется):
    • Клик правой кнопкой на области «ПрограммныйИнтерфейс» → «Документирование (с настройкой)...» → «Генерировать описание».
    • Проверить описание, при необходимости внести правки и сохранить.
  5. Формирование итогового текста модуля: «Действия» → «Сформировать тексты модулей...».
  6. Копирование результата обратно в Конфигуратор.

 

Демонстрация:

 

 

Таймкоды: 

 

Как работает «Оформлятор»

1. Код разбирается в сравнительно простую структуру (дерево структуры модуля, ее описание есть прямо в коде решения). 

2. Эта структура или ее части обрабатываются обработками-компонентами Оформлятора (например, обработка расстановки областей — добавляет в дерево области, раскидывает по ним методы).

3. Из получившейся структуры собирается оформленный текст модуля.

Можно разрабатывать свои компоненты. Их подключение похоже на механизм подключаемых команд в БСП (в видео-демонстрации выше разобран подробный пример).

 

Какие еще есть возможности

Основное назначение «Оформлятора» — форматтер. Но изначально проект задумывался как инструмент для работы с кодом как с данными. Причем сравнительно простой, и написанный на чистом 1С. Т.е. доступный для доработки любому 1С-нику. И для анализа кода в нем есть:

  • Анализ модуля. Функция, которая принимает текст, и выдает
    • таблицу (граф) вызовов — локальных, стандартных методов платформы, общих модулей и модулей менеджера, обработчики оповещения и т.д., 
    • таблицу используемых полей (переменных модуля, реквизитов и т.д.).
    • таблицу создаваемых объектов (конструкцией "Новый ...").
  • Полноценный парсер втроенного языка. Обработки из проекта bsparser (автор - Александр, спасибо ему за его разработку). Это хорошо документированный инструмент (см. описание на GitHub по ссылке), который умеет токенизировать код, строить абстрактное синтаксическое дерево. Структура довольно сложная, но позволяет глубоко анализировать код. Также в bsparser есть возможность реализовать обход этого дерева подключаемым "плагином" (реализация паттерна "Посетитель"). Одна беда — проект некоторое время назад забросили. Но в моем форке добавлена поддержка актуальных конструкций языка 1С.

Если у вас возникнут задачи по обработке кода — Оформлятор можно брать за основу. Я, например, эти инструменты использовал

  • при переносе части функционала одной конфигурации в другую, 
  • поиске битых вызовов после обновления конфигурации.

 

Другие форматтеры для 1С

 

Как возник проект

Расскажу как родилась идея проекта. Когда-то пришлось пилить массивный модуль для интеграции 1С с одной известной государственной информационной системой — ВетИС. Кроме меня в проекте учавствовали также другие разработчики, которые тоже должны были работать с этим модулем. 

Когда очередь дошла до наведения порядка (задокументировать программный интерфейс, логично организовать структуру модулей и т.д.), понял, что эта рутина выше моих сил, и нужно ее как-то автоматизировать. И хотя по времени в итоге вышло дольше (неделя или две на первоначальную разработку против одного-двух дней ручной работы), зато теперь этот инструмент экономит уйму сил.

Попробуйте, проект на GitHub, установить и начать использовать очень просто. Если возникнет желание поучаствовать в его развитии – будет вообще замечательно, он открыт для контрибьюторов. Сделаем мир код 1С-ных доработок лучше!

Тестировалось на платформе 8.3.24.1342.

См. также

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

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

15500 руб.

02.09.2020    174973    973    403    

931

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    16567    114    52    

115

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

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

22200 руб.

06.10.2023    18051    49    18    

81

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

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

9360 руб.

17.05.2024    28220    98    48    

141

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

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

15000 руб.

10.11.2023    12385    49    33    

70

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18363    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1468    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2331 12.02.25 11:37 Сейчас в теме
(0) Интересная идея. Есть вопрос не совсем по теме... А можно с помощью этого механизма сделать обфускацию кода общего модуля, например?
2. wonderboy 499 12.02.25 12:06 Сейчас в теме
(1) Теоретически можно конечно. Парсером разобрать код в АСД, переименовать там все локальное (переменные, методы и т.д.) и собрать обратно в текст, с минимальным количеством пробелов и форматирования :)
Но мне кажется обфускаторов для 1С предостаточно специализировано под эту задачу сделано..
3. Diversus 2331 12.02.25 12:08 Сейчас в теме
(2) Мне известен только один, которым пользуемся - это нетленка 1С. Остальное либо не качественное, либо не работает как нужно.
ivnik; wonderboy; +2 Ответить
4. Evg-Lylyk 4924 12.02.25 13:55 Сейчас в теме
(0) Отличная разработка. Мне нужно по коду модуля получать описание параметров методов по заголовочному комментарию куда глянуть?
5. wonderboy 499 12.02.25 14:01 Сейчас в теме
(4) Евгений, спасибо!
По вопросу.
Если вопрос в том как получить средствами модуля, то:
ДеревоМодуля = Обработки.ОМ_ОформляторМодулей.РазобратьТекстВДеревоМодуля( ТекстМодуля );
СтруктураМетоды = Обработки.ОМ_ОформляторМодулей.СтруктураМетодовМодуля(ДеревоМодуля);

ПараметрыМетода = СтруктураМетоды[ИмяМетода].Содержимое.Параметры ;

Это будет таблица значений с типом и описаниями:

// - **Параметры** (ТаблицаЗначений) — таблица параметров:
// - **Имя** (Строка) — имя параметра.
// - **Тип** (Строка) — тип параметра.
// - **ЗначениеПоУмолчанию** (Строка) — значение по умолчанию.
// - **ПоЗначению** (Булево) — признак передачи по значению.
// - **Описание** (Строка) — описание параметра (тип и описание отражаются в коммантарии над объявлением метода).


Если вопрос как описания параметров внутри модуля разбираются, то это модуль объекта обработки ОМ_ОформляторМодулей. См. метод "РазобратьКомментарийКПодпрограмме"
ivnik; fancy; Evg-Lylyk; +3 Ответить
6. Evg-Lylyk 4924 12.02.25 14:04 Сейчас в теме
(6) Спасибо, буду разбираться
7. PowerBoy 3426 12.02.25 19:03 Сейчас в теме
Для подключения к qwen
Базовый адрес:https://chat.qwenlm.ai/api/chat/completions
Модель:qwen-plus-latest

Доработать код:
// Формирование тела запроса
	СтруктураЗапроса = Новый Структура;
	СтруктураЗапроса.Вставить("model", ТекМодель);
	СтруктураЗапроса.Вставить("messages", Новый Массив);
//Добавить параметры	
	СтруктураЗапроса.Вставить("stream", false);
	СтруктураЗапроса.Вставить("chat_type", "t2t");

Показать
user1620186; +1 Ответить
8. wonderboy 499 12.02.25 19:08 Сейчас в теме
(7)
//Добавить параметры


Как бы другие сервисы тогда работать не перестали. Видимо у этого провайдера свои особенности в API. Но код как есть - точно работает для провайдеров deepseek.com, openrouter.ai, openai.com

Как, кстати, КВЕН с документированием справляется? Внятно получается?
9. PowerBoy 3426 12.02.25 19:11 Сейчас в теме
(8) Вполне хорошо
// Возвращает остаток товара по номенклатуре на указанную дату
// 
// Параметры:
//  Номенклатура - СправочникСсылка.Номенклатура - Ссылка на элемент справочника Номенклатура
//  Дата         - Дата                          - Дата, на которую нужно получить остаток товара
// 
// Возвращаемое значение:
// Число - Остаток товара (количественное значение)
Функция ВернутьОстаток(Номенклатура, Дата)
	Остатки = РегистрыНакопления.ТоварыЖивотных.Остатки(новый МоментВремени(Дата), Новый Структура("Номенклатура",Номенклатура));
	Если остатки.Количество()>0 Тогда
		Возврат остатки[0].Количество;
	Иначе
		Возврат 0;
	КонецЕсли;
КонецФункции
Показать
wonderboy; +1 Ответить
10. Xershi 1565 12.02.25 20:59 Сейчас в теме
Крутая штука.
ИИ требует регистрации?
Можно подробнее про его работу?
Пока не качал, возьму себе на заметку для таких проектов как у вас.
11. wonderboy 499 12.02.25 21:27 Сейчас в теме
(10) ИИ можно без регистрации.

Про его работу - под ИИ тут подразумевается большая языковая модель. Формируется запрос (промпт) с командой на документирование метода, в этот запрос в том числе код включается, который надо задокументировать. Запрос отправляется провайдеру, у которого хостится та или иная модель. Как-то так.
12. alex_sayan 56 13.02.25 08:39 Сейчас в теме
Класс! Ещё один способ генерировать капитанско-очевидные комментарии к коду)

Функция СложитьДваЧисла(Первое, Второе)

Так ничего не понятно

// Сложение двух чисел
// Первое - Число - первое число
// Второе - Число - второе число
//
Функция СложитьДваЧисла(Первое, Второе)

а вот так сразу становится очень понятно!)
d.zhukov; Evg-Lylyk; +2 Ответить
13. wonderboy 499 13.02.25 08:44 Сейчас в теме
(12) Вот так должно быть:
// Сложение двух чисел
//
// Параметры:
//  Первое - Число - первое число
//  Второе - Число - второе число
//
// Возвращаемое значение:
// Число - результат сложения
Функция СложитьДваЧисла(Первое, Второе)
Показать


:)
ivnik; maksa2005; ubnkfl; +3 Ответить
14. fancy 36 13.02.25 09:00 Сейчас в теме
Отличная разработка, спасибо автору, приму на вооружение.
Часто приходится рефакторить свой и чужой код, можно в качестве минимальной разработки добавить приведение ключевых слов в коде к каноническому написанию (если/ЕСЛИ -> Если, тогда/ТОГДА - > Тогда и т.п) это приходится часто изменять, но можно и пропустить глазами
TreeDogNight; wonderboy; +2 Ответить
15. Diversus 2331 13.02.25 13:00 Сейчас в теме
На сколько я понял, вы используете openrouter.ai
Скажите, а что это за платформа такая и как ее использовать?
Не совсем понятно это бесплатная штука или нет?

Там есть кредиты и вместе с тем, используются ключи от ChatGPT. Не понятно... Можете пояснить?
16. wonderboy 499 13.02.25 13:13 Сейчас в теме
(15)
На сколько я понял, вы используете openrouter.ai


По-началу использвоал deepseek.com. Но как вокруг них хайп начался - они лимиты сильно порезали. В итоге стали жаловаться, что документирование толком не работает. Так что сейчас да, переключил на openrouter. Если ключ свой не указываешь, то запросы туда идут.


Скажите, а что это за платформа такая и как ее использовать?


Это сервис, который позволяет через один API (совместимый с OpenAI) и точку входа работать практически с любыми языковыми моделями (и опенсорсными, и проприетарными). При этом сам этот сервис модели не хостит, перенаправляет запросы другим провайдерам в зависимости от нагрузки. Но если вы проприетарную модель используете, типа gpt4o, например, то естественно запросы пойдут в OpenAI.

Как использовать. Регистрируетесь, получаете ключ API, пополняете баланс. Картой РФ не получится, но вроде можно криптой, если нет зарубежной (я не пробовал). Далее отправляете запросы, получаете ответы.
Поддерживаются только модели completion (котоыре умеют в чат). Генерация картинок, эмбеддинги - там эти модели не работают, насколько я помню.


Не совсем понятно это бесплатная штука или нет?


Ну думаю уже понятно, что штука платная.


ам есть кредиты и вместе с тем, используются ключи от ChatGPT. Не понятно...


Ключ от ChatGPT - это опция. Тут фишка в том, что у ChatGPT есть лимиты. И если у вас не высокий уровень в API, а запросов много, то в них быстро упираешся. Если отправлять запросы через OpenRouter со своим ключем, то он по умолчанию использует ваш ключ (и немного с кредитов списывает), а если упираетесь в лимиты, то используются уже ключи ОпенРоутера. И у вас как бы сервис не прерывается из-за упирания в лимиты. Я так эту идею понял.
TreeDogNight; +1 Ответить
17. lada2011 13.02.25 13:15 Сейчас в теме
Еще бы применить ИИ для разбора запросов в конфигурации ЗУП по расчету зарплаты и ндфл, чтоб не тратить нга поиск ошибок длительное время,особенно длинных запросов с размером на несколько страниц.
18. wonderboy 499 13.02.25 13:23 Сейчас в теме
(17) Ну я использую для поиска ошибок время от времени. И в запросах и в коде. Правда насчет ЗУП не уверен, что справится (как бы ядерные ракеты не запустил, когда увидит ЗУПовские представления и т.д. :) ).
TreeDogNight; +1 Ответить
19. m_aster 119 13.02.25 18:46 Сейчас в теме
Владимир, спасибо! Интересная вещь, давно пора автоматизировать стандарты разработки(хорошо бы еще сделать проверку на прописные буквы в ключевых словах))))
Спасибо за аккуратный и упорядоченный код(посмотрел что внутри)!
Насчет DeepSeek, это не совсем он, похожая модель, как и сам deepseek говорит, что он похож на chatgpt, реальный DeepSeek доступен с недавнего времени по "api.deepseek.com"(к сожалению, пока нет возможности подключиться, т.к., стал платным и прием оплаты аккаунта пока недоступен).
20. wonderboy 499 13.02.25 19:44 Сейчас в теме
(19)
Интересная вещь, давно пора автоматизировать стандарты разработки


Спасибо!
Да, мне тоже кажется что чем проверять код на соответствие стандартам - лучше взять да автоматически привести его к стандартам :)


реальный DeepSeek доступен с недавнего времени по "api.deepseek.com"


Ну вот я выше писал, что у меня изначально на api.deepseek.com и шли обращения. Если ключ не указывать - запросы идут на мой сервер, и ранее проксировались как раз туда. Но там сейчас лимиты жесткие, и да, пополнить пока баланс нельзя, хотя еще 2 недели назад пополнил без особых проблем.

А по поводу та модель или нет, насколько я знаю у DeepSeek сейчас 2 основных модели - V3 и R1. И обе их они выложили в опенсорс, так что они общедоступны. Их сейчас хостят у себя несколько провайдеров. В логах OpenRouter'а видно что обращеня роутятся куда угодно, только не на api.deepseek.com :), у них похоже до сих пор проблемы с выросшей нагрузкой..
26. m_aster 119 13.02.25 21:16 Сейчас в теме
(20) Да, встроить бы в платформу, что-то типа рефакторинга кода с дополнениями).
По поводу открытой модели, это DeepSeek ответил:
"На текущий момент DeepSeek действительно выпустила несколько открытых моделей (например, DeepSeek-R1, DeepSeek-Math и другие), которые доступны под открытыми лицензиями (часто Apache 2.0 или MIT). Однако конкретных публичных данных о том, какие крупные коммерческие провайдеры (например, облачные платформы или SaaS-сервисы) уже интегрировали их модели в свои продукты, пока нет."
Я мониторил доступность их API, появился не так давно и платно(в личном кабинете), до этого сам DeepSeek давал ссылку на настройки личного кабинета, который раньше был недоступен(видимо был в тесте).
fancy; wonderboy; +2 Ответить
21. Sander80 102 13.02.25 20:14 Сейчас в теме
Добрый день. А не получится это автоматом натравить на все bsl в папке, чтобы руками не копировать?

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

Да, и как она понимает обработчики событий элементов формы? По имени типа заканчивается на ПриИзменении?
22. wonderboy 499 13.02.25 20:23 Сейчас в теме
(21)
А не получится это автоматом натравить на все bsl в папке, чтобы руками не копировать?


Получится. Но это надо реализовывать, сейчас этого нет.
Я сам обычно точечно свои доработки оформляю, тем более что какие-то моменты вручную бывает правлю.


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


Это думаю тоже можно. Но расширения конфигуратора тоже не использую. Работать частенько приходится на серверах клиентов, каждому не поставишь.. Поэтому все по-простому, копи-паст :)


как она понимает обработчики событий элементов формы


Да, правильно предположили. По имени и иногда по составу параметров, когда есть неоднозначности.
Кстати, может иногда ошибаться, так что приходится что-то вручную перекидывать.

Конечно было бы надежнее анализировать ХМЛ метаданных или форм. Но это все усложняет процесс. Ради того чтобы модуль отформатировать я лично выгружать конфу в ХМЛ просто поленюсь. А так разделение методов на обработчики событи и т.д., и на таких "эвристиках" вроде бы неплохо работает (на моих модулях по крайней мере).
Sander80; +1 Ответить
23. Sander80 102 13.02.25 20:27 Сейчас в теме
(22) Понял, спасибо. Пока не смотрел код, но как я понимаю, я смогу его доработать, чтобы получить список файлов, считать, потом вызвать ваш код разбора, получить результат, дописать.

Звучит очень перспективно, а то мы сейчас переводим большие конфигурации в состояние 0 ошибок по фениксу/кубу (community plugin), и любую автоматизируемую рутину хочется автоматизировать.
wonderboy; +1 Ответить
24. wonderboy 499 13.02.25 20:31 Сейчас в теме
(23)
я смогу его доработать, чтобы получить список файлов, считать, потом вызвать ваш код разбора, получить результат, дописать


Да, конечно. Если будут проблемы - обращайтесь.
Sander80; +1 Ответить
25. Sander80 102 13.02.25 20:49 Сейчас в теме
27. php5 29 13.02.25 22:26 Сейчас в теме
Потестировал, скажу коротко. Годно.
Можно использовать для унификации, спасибо автору за вклад в развититие 1С сообщества. Лайк
wonderboy; maksa2005; +2 Ответить
28. grumagargler 728 14.02.25 02:55 Сейчас в теме
Мне кажется, вам стоило проявить большее уважение и хотя бы упомянуть автора, Цуканова Александра, разработка которого лежит в основе вашей обёртки, и как раз таки является платформой, для создания таких решений, как ваше. Включая саму идею, реализацию, и всё, что вы написали в разделе "Какие еще есть возможности".
29. wonderboy 499 14.02.25 06:08 Сейчас в теме
(28)
упомянуть автора, Цуканова Александра


Автор упомянут в описании проекта на Гитхабе. Вот только у меня нет уверенности, что он единственный автор (чтобы никого не обидеть). Но добавил здесь тоже, спасибо за замечание.
30. Velostrannik 201 14.02.25 10:48 Сейчас в теме
31. awk 745 14.02.25 11:33 Сейчас в теме
Парсер не разбирает конструкцию типа: ВызватьИсключение(Текст, КатегорияОшибки.ОшибкаСети, "1.1", subject, ИнформацияОбОшибке);
32. wonderboy 499 14.02.25 11:36 Сейчас в теме
(31)
конструкцию типа: ВызватьИсключение(Текст, КатегорияОшибки.ОшибкаСети, "1.1", subject, ИнформацияОбОшибке)


Вродебы недавно появилась такая конструкция?
Еще не успел ее протестить, спасибо, будем допиливать.
38. awk 745 17.02.25 09:48 Сейчас в теме
(32) Написать парсер - лучший способ выучить язык. Узнаёшь много нового.
wonderboy; +1 Ответить
33. Viktor_Ermakov 372 14.02.25 14:53 Сейчас в теме
Отличная работа!
Предлагаю встроиться в tools_ui_1c "Универсальные инструменты 1С для управляемых форм"
Alish009; +1 Ответить
34. kser87 2469 14.02.25 19:31 Сейчас в теме
35. wonderboy 499 14.02.25 20:08 Сейчас в теме
(34) чтобы по коду метода сгенери́ровать комментарий с его назначением , описанием параметров и т.д
36. user1620186 16.02.25 14:05 Сейчас в теме
У меня руки зачесались я уже представил как развить эту историю!!! Без ctr c и ctr v а масштабно всю конфу хотя как вопрос возникает как научить ИИ сравнивать повторяющейся код находить и предлогать с генерировать общие модули и находить схожие функции? остается вопросом то есть локальная функция в форме на сложение мы знаем что она есть и в другом менеджере и мы понимаем что можно убрать ее и написать общий модуль эту функцию и следовательно это мы должны рекурсивно и заменить функцию в менеджерах уже на общий модуль и если они отличаются на на 1 строчку условий дописать условие из какого менеджера это вызывается таким образом мы сможем выявить уязвимые участки кода и их трансформировать в стандарт сократить количество кода.... много другого
37. wonderboy 499 16.02.25 14:47 Сейчас в теме
(36) да, это уже автоматический рефакторинг, крутые идеи.

От такой системы уже недалеко к варианту, когда система сама код пишет по ТЗ, с минимальным участием программиста :)
Оставьте свое сообщение