Оформитель исходного кода 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 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    150224    832    393    

839

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

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

9360 руб.

17.05.2024    19987    58    42    

105

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

OneRPA - платформа роботизации рутинных операций, в основе которой лежит платформа 1С:Предприятие. Данная платформа позволяет использовать современные технологии роботизации, не теряя при этом наработки, которые были созданы в ходе автоматизации. При этом платформа роботизации сохраняет все преимущества платформы 1С: гибкость, кроссплатформенность, мобильный и Web доступ, простоту расширения. Ну и конечно же роботы создаются и сопровождаются простыми специалистами 1С, при этом не обязательно программистами. Self hosted версия

300000 руб.

03.03.2021    14113    12    27    

36

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

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

18000 руб.

06.10.2023    13807    35    7    

68

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

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

10000 руб.

10.11.2023    8922    32    10    

55

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

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

6900 руб.

20.08.2024    3297    18    6    

32

SALE! %

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

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

4800 3840 руб.

14.01.2013    184760    1126    0    

898

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

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

15000 руб.

07.10.2021    16663    6    29    

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

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