Оформитель исходного кода 1С

23.09.24

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

Все мы хотя бы раз работали с конструктором запросов. Результатом его работы является синтаксически верный запрос, оформленный по некоторому стандарту. Нравится - не нравится, а привыкаешь быстро, и на запрос, написанный руками, уже не хочется смотреть... А почему бы не попробовать сделать то же самое с исходным кодом 1С? Ну я и попробовал...

Почему я его написал, чем не устраивал Alt+Shift+F? А я просто захотел себе такой инструмент, мужик захотел - мужик сделал. Вы можете относиться к этому как к развлечению для ума.

Оформитель или bslpretty.

Оформитель представляет собой набор плагинов для парсера встроенного языка 1С и скрипт для запуска из командной строки bslpretty.os. Проект опубликован на GitHub, имеет открытую лицензию MIT.

В качестве киллер-фишки заявляется интеграция с ГИТ. Он может сравнить рабочий каталог репозитория с последним коммитом и оформить только измененные строки.

 

Что Оформитель умеет

  1. Заменять неправильно написанные ключевые слова на правильные. "если" меняет на "Если"
  2. Расставлять пробелы там где они нужны и удалять там где они не нужны
  3. Расставлять отступы. В том числе менять отступы пробелами на отступы символом табуляции

Грубо говоря, он исправляет код:

Для ц=1 по 100500 Цикл
Если ц >= 100500 Тогда
    Сообщить("100500");	
	КонецЕсли;
КонецЦикла;

на код:

Для ц = 1 По 100500 Цикл
	Если ц >= 100500 Тогда
		Сообщить("100500");
	КонецЕсли;
КонецЦикла;

 

На всякий случай подсвечу изменения с помощью программы WinMerge

Есть весьма спорный функционал выравнивания аргументов:

Код

Стр = новый Структура();
Стр.Вставить("Результат1", п);
Стр.Вставить("Резу", п1);
Стр.Вставить("Рез", п2);

Заменяет на код

Стр = новый Структура();
Стр.Вставить("Результат1", п);
Стр.Вставить("Резу",       п1);
Стр.Вставить("Рез",        п2);

Как воспользоваться оформителем кода

Вам понадобиться

  1. oscript и установленная для него библиотека osparser
  2. Если вы хотите использовать Интерактивный режим Оформителя - утилита diff (устанавливается вместе с git) или программа WinMerge

 

И так:

  1. Склонируйте или скачайте репозиторий bslpretty
  2. Откройте в текстовом редакторе файл src\bslpretty.os и посмотрите на функцию Настройки(). Убедитесь, что там правильные пути до утилиты Diff / WinMerge или отключите интерактивный режим. В остальном, надеюсь, там все понятно.
  3. Запустите командную строку windows и перейдите в каталог с корнем bslpretty. У меня так:
 cd c:\git\bslpretty\

 

Оформитель имеет два режима работы. С каталогом исходного кода или с репозиторием git.

Запустите команду, думаю будет все понятно:

oscript src\bslpretty.os

bslpretty.os git путь_к_репозиторию [commit]
  Оформляет измененные стройки по результату сравнения git diff [commit]
  Оформление применяется только к измененным строкам в измененных файлах

bslpretty.os file путь_к_каталогу_с_файлами
  Оформляет все файлы *.bsl и *.os в каталоге

 

Выполните команду

oscript src\bslpretty.os file test_data

Оформитель оформит файл test_data/МодульДляОформления.bsl, а в интерактивном режиме покажет изменения и спросит ваше мнение "Нужно ли применять исправления к файлу"?

 

Или отредактируйте файл test_data/МодульДляОформления.bsl. Измените буквально пару строк, чтобы git заметил изменения.

Запустите команду

oscript src\bslpretty.os git .

Оформитель оформит в файле только измененные строки, не трогая модуль целиком.
 

Заключение

bslpretty - довольно сырой инструмент, имеет список известных проблем, тем не менее он работает.

Ожидаемый эффект от внедрения:

  • Единообразный код вне зависимости от среды разработки: Текстовый редактор, Конфигуратор, EDT
  • Минимум "мусорных коммитов"

Надеюсь, моя работа стоила вашего внимания и вам было интересно. Я старался.

oscript

См. также

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

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

12000 руб.

02.09.2020    169252    937    403    

905

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

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

8400 руб.

20.08.2024    12581    99    42    

101

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

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

9360 руб.

17.05.2024    26520    90    48    

134

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

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

22200 руб.

06.10.2023    16817    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190539    1150    0    

918

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

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

15000 руб.

10.11.2023    11388    40    27    

66

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

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

3600 руб.

27.12.2024    767    2    0    

4

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

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

5000 руб.

07.02.2018    103924    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Spurk 42 24.09.24 02:35 Сейчас в теме
Выделяешь написанный код.
Нажимаешь Alt+Shift+F.
В результате получишь выравнивание как нужно.
2. scarl1n 12 24.09.24 10:57 Сейчас в теме
(1) Ага, а еще он регистр исправит и пробелами обособит операторы.
unknown181538; +1 Ответить
3. artbear 1565 24.09.24 11:25 Сейчас в теме
Еще один форматтер кода 1С в копилку форматтеров. Спасибо автору.

Жаль только, что постепенно эти проекты не развиваются и умирают по разным причинам.
4. stopa85 43 24.09.24 14:15 Сейчас в теме
(3) А вам известны какие-нибудь другие? Поделитесь. Я видел только какую-то обработку на 1С. Ну и говорят, что всякие снегопады могут.
unknown181538; +1 Ответить
Оставьте свое сообщение